Vai alla Home Page About me Courseware Federica Living Library Federica Federica Podstudio Virtual Campus 3D Le Miniguide all'orientamento Gli eBook di Federica La Corte in Rete
 
 
Il Corso Le lezioni del Corso La Cattedra
 
Materiali di approfondimento Risorse Web Il Podcast di questa lezione

Ernesto Burattini » 15.Esempi di liste legate


Liste legate

Rivediamo alcune delle function precedenti riscritte in maniera diversa e/o utilizzando la ricorsione.

Rivediamo alcune delle function precedenti riscritte in maniera diversa e/o utilizzando la ricorsione.


Liste legate (segue)


Liste legate (segue)


Liste legate (segue)

Allegato: listeFileGenRic2

Per utilizzare il codice listeFileGenRic2 è necessario costruire un file .txt in cui vanno inserite le chiavi dei singoli nodi della lista che si vuole costruire.


Liste legate (segue)


Esercizio

1. Assegnata una lista L di interi, scrivere una funzione ricorsiva che restituisca TRUE se esiste almeno un elemento della lista che è uguale alla somma di tutti quelli che lo precedono, FALSE altrimenti.

bool sommaPrec(Pnodo p, int somma)
{
if (p->next!=NULL)
{
if (p->info==somma)
return true;
else
return sommaPrec(p->next,somma+p->info);
}
return (p->info==somma);
}

Allegato: sommaNodiliste3

Esercizio

Siano L1 ed L2 due liste legate, di eguale lunghezza. Scrivere una procedura o funzione ricorsiva che restituisca la lista L1 contenente in successione gli elementi di L1 ed L2, alternati fra loro.
Esempio: se L1 = (1,4,3,5) ed L2 = (7,6,2,6) ,L1 = (1,7,4,6,3,2,5,6)

Allegato: listeAlternate3

Per utilizzare il codice listeAlternate3 è necessario costruire un file .txt in cui vanno inserite le chiavi dei singoli nodi della lista che si vuole costruire.


Esercizio

Assegnate due liste legate L1 e L2 contenenti numeri interi, fondere le due liste in un’unica lista in cui nella prima parte ci siano solo i numeri dispari e nella seconda parte solo i numeri pari.


Esercizio

Allegato: spostanodi4


Esercizio

Dato un file di interi non ordinati metterli in una lista in ordine crescente

// MAIN
int main()
{
int item;
string nome;
Pnodo L1, p1,L2, ultimo,px;
cout<<" LISTA DI PARTENZA "<
L1=NULL;
costruisciLista(L1,nome);
cout<<"\n LISTA ORDINATA"<
stampaLista(L1); cout<<" "<
system("pause");
}

Esercizio

Allegato: listeInserctionSort

Per utilizzare il codice listeInsertionSort è necessario costruire un file .txt in cui vanno inerite le chiavi dei singoli nodi della lista che si vuole costruire.


Esercizio

Date due liste legate di caratteri L1 ed L2, contenenti eventuali ripetizioni, costruire la lista legata L3, senza ripetizioni, che contiene tutti e soli i caratteri presenti in entrambe le liste.

Allegato: listeIntersezione3

Per utilizzare il codice listeIntersezione3 è necessario costruire un file .txt in cui vanno inserite le chiavi dei singoli nodi della lista che si vuole costruire.


Esercizio (segue)


Esercizio

Date due liste legate di interi L1 ed L2, contenenti eventuali ripetizioni, costruire la lista legata L3, senza ripetizioni, che contiene tutti gli interi presenti sia in L1 che in L2. UNIONE
int item;
Pnodo L1,L2, L3,p3;
costruisciLista(L1);
stampaLista(L1);
costruisciLista(L2);
stampaLista(L2);
L3=NULL;
p3=Lista3(L1 ,L2 , L3);
if (p3==NULL) cout<<"UNIONE VUOTA"<
else
{ cout<<" UNIONE "<
stampaLista(p3);}
}

Allegato: listeUnione

Per utilizzare il codice listeUnione è necessario costruire un file .txt in cui vanno inserite le chiavi dei singoli nodi della lista che si vuole costruire.

Esercizio (segue)


Esercizio

Data una lista di interi non ordinata, renderla ordinata.

int main () {
Pnodo L=NULL;
costruisci (L);cout<<
stampa(L);cout<
if (L!=NULL) {ordinasr(L,L);
cout<<"LISTA ORDINATA "<
cout<
}

Allegato: ordinalista4
Per utilizzare il codice ordinalista4 è necessario costruire un file .txt in cui vanno inserite le chiavi dei singoli nodi della lista che si vuole costruire.

Esercizio (segue)


Esercizio


Esercizio somme di polinomi


Esercizio somme di polinomi (segue)


Esercizio somme di polinomi (segue)


Esempio di output


  • Contenuti protetti da Creative Commons
  • Feed RSS
  • Condividi su FriendFeed
  • Condividi su Facebook
  • Segnala su Twitter
  • Condividi su LinkedIn
Progetto "Campus Virtuale" dell'Università degli Studi di Napoli Federico II, realizzato con il cofinanziamento dell'Unione europea. Asse V - Società dell'informazione - Obiettivo Operativo 5.1 e-Government ed e-Inclusion