22 maggio 2002 Avvisi: Ultima lezione: mercoledì 29 maggio II Esonero: mercoledì 5 giugno, ore 10:00
Pila (Stack ) Versione limitata della lista concatenata: operazioni di inserimento e cancellazione nodi solo in testa (top) Struttura Last-in, first-out (LIFO) Si accede tramite un puntatore alla testa : top Il link dellultimo nodo e impostato a null push –Aggiunge nuovo nodo in testa alla pila pop –Cancella un nodo dalla testa della pila restituendo il valore che conteneva
Manipolazione di una pila Analizziamo il codice pila.c direttamente sul compilatore…
Queue (Coda) Versione limitata della lista concatenata: operazioni di inserimento e cancellazione nodi rispettivamente solo in coda (tail) e in testa Struttura First-in, first-out (FIFO) Si accede tramite due puntatori rispettivamente alla testa ( head ) e alla coda ( tail ) Le operazioni di inserimento e cancellazioni si indicano rispettivamente con enqueue e dequeue Ha varie applicazioni in routine di sistemi operativi e gestione delle reti.
Manipolazione di una coda Analizziamo il codice coda.c direttamente sul compilatore…
Alberi ( Tree) Nodi di un albero contengono 2 nodi (struttura non-lineare) Alberi Binari –Tutti i nodi contengono due link Nessuno, uno o entrambi possono essere NULL –La radice (root) e il primo nodo di un albero. –Ogni link corrisponde ad un figlio di quel nodo –Un nodo senza figli si chiama foglia
Esempio di albero binario
Alberi binari di ricerca Valori nel sottoalbero sinistro minori del padre Valori nel sottoalbero destro maggiori del padre Semplice eliminazione dei duplicati Ricerca veloce – se lalbero e bilanciato, max log n confronti…
Visite di alberi Attraversamento in pre-ordine: 1.Elaboro il valore nel nodo 2.Attraverso il sottoalbero sinistro in pre-ordine 3.Attraverso il sottoalbero destro in pre-ordine Nellesempio: 20, 10, 3, 13, 30, 27,
Visite di alberi Attraversamento in post-ordine: 1.Attraverso il sottoalbero sinistro in post-ordine 2.Attraverso il sottoalbero destro in post-ordine 3.Elaboro il valore nel nodo Nellesempio: 3,13,10,27,40, 30,
Visite di alberi Attraversamento in in-ordine: 1.Attraverso il sottoalbero sinistro in in-ordine 2.Elaboro il valore nel nodo 3.Attraverso il sottoalbero destro in in-ordine Nellesempio: 3, 10, 13, 20,27, 30,
Creazione di un albero binario e suoi attraversamenti pre-,post-, in-ordine Analizziamo il codice tree.c direttamente sul compilatore…
Esercizi Integrare il programma tree.c con le seguenti funzioni: Funzione search che ricerca un dato valore allinterno di una lista concatenata. La funzione dovra restituire il puntatore a quel valore o null nel caso che tale valore non sia presente nella lista. Funzione delete che cancella un dato valore dallalbero.