nikpez
Ominide
1 min. di lettura
Vota 3 / 5

Concetti Chiave

  • La funzione split separa una lista di nodi in due liste: una con numeri pari e l'altra con numeri dispari.
  • Utilizza una struttura nodo per rappresentare gli elementi della lista, con un campo val e un puntatore next.
  • La funzione insert viene impiegata per aggiungere nuovi elementi alla lista pari o dispari, creando nuovi nodi se necessario.
  • La direzionalità dei parametri in split è indicata come I – O - O, significando un input e due output.
  • Esempio di utilizzo: se la lista originale contiene i numeri 1, 5, 6, 4, 9, dopo l'uso di split, si avranno le liste puntPari (6, 4) e puntDispari (1, 5, 9).
Liste - Esercizio C++

Si assuma come data la seguente dichiarazione di tipo:
struct nodo{
int val;
nodo *next;
};
Scrivere in C++ la definizione di una funzione il cui prototipo è:
void split(nodo *lista, nodo *&pari, nodo *&dispari);
e tale che se l, p e d sono variabili di tipo puntatore a nodo allora l’istruzione
split(l,p,d); fa in modo che p e d puntino a liste di interi contenenti rispettivamente i
numeri pari e dispari contenuti nella lista l.
Ad esempio, se l punta ad una lista contenente i numeri 1, 5, 6, 4, 9 allora dopo
l’esecuzione dell’istruzione split(l,p,d); la variabile p punterà ad una lista contenente i
numeri 6 e 4, mentre la variabile d punterà ad una lista contenente i numeri 1, 5 e 9.
Se ritieni opportuno utilizza (e codifica) altre funzioni.
Scrivi l’istruzione di chiamata, definisci (e se necessario, inizializza) le variabili, indica
infine la direzionalità dei parametri.
void split(elem *lista, elem *&pari, elem *&dispari) //I – O - O
{
while(lista)
{
if(lista->num %2 == 0)
insert2(pari, lista->num);
else
insert2(dispari, lista->num);
lista=lista->next;
}
}
void insert(elem *&l, int el) // I/O - I
{
if(!l)
{
l=new elem;
l->num=el;
l->next=NULL;
}
else
insert(l->next, el);
}
elem * list;
elem * puntPari=NULL;
elem * puntDispari=NULL;
split(list,puntPari, puntDispari);

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community