Strutture dati lineari Lista Pila Coda. Strutture dati Per gestire un insieme dinamico di elementi...

10
Strutture dati lineari Lista Pila Coda

Transcript of Strutture dati lineari Lista Pila Coda. Strutture dati Per gestire un insieme dinamico di elementi...

Page 1: Strutture dati lineari Lista Pila Coda. Strutture dati Per gestire un insieme dinamico di elementi occorre implementarlo mediante una struttura dati.

Strutture dati lineari

Lista Pila Coda

Page 2: Strutture dati lineari Lista Pila Coda. Strutture dati Per gestire un insieme dinamico di elementi occorre implementarlo mediante una struttura dati.

Strutture dati

Per gestire un insieme dinamico di elementi occorre implementarlo mediante una struttura dati.

Una struttura dati è composta da nodi, ciascuno dei quali contiene un elemento dell’insieme ed eventuali altre informazioni (puntatori) che servono per la gestione della struttura.

Page 3: Strutture dati lineari Lista Pila Coda. Strutture dati Per gestire un insieme dinamico di elementi occorre implementarlo mediante una struttura dati.

Le strutture fisiche dei dati Per implementare le strutture dati, si

devono utilizzare le strutture fisiche fornite dai linguaggi che possono avere dimensione statica o dinamica.

Un array, per esempio, è una struttura di memorizzazione dalla dimensione statica.

Strutture fisiche dalla dimensione dinamica si possono implementare grazie all’uso dei puntatori.

Page 4: Strutture dati lineari Lista Pila Coda. Strutture dati Per gestire un insieme dinamico di elementi occorre implementarlo mediante una struttura dati.

Strutture dati lineari Una struttura dati si dice lineare se i suoi

elementi sono organizzati in modo sequenziale, ovvero se logicamente gli stessi sono posizionati uno dopo l’altro. Pila Coda Lista

Page 5: Strutture dati lineari Lista Pila Coda. Strutture dati Per gestire un insieme dinamico di elementi occorre implementarlo mediante una struttura dati.

Pila (stack) La pila è una struttura dati di tipo LIFO che

garantisce che l’ultimo elemento depositato nella pila sia il primo a essere servito.

LIFO (Last-In First-Out, “l’ultimo arrivato è il primo ad essere servito”)

Esempio pila di piatti, pila di libri, di monete

Page 6: Strutture dati lineari Lista Pila Coda. Strutture dati Per gestire un insieme dinamico di elementi occorre implementarlo mediante una struttura dati.

Operazioni sulla pila push

consente di inserire un nuovo elemento in testa alla pila

pop permette di estrarre il primo elemento in cima

alla pila top

consente di leggere il primo elemento in cima alla pila senza estrarlo da essa

vuota restituisce true se la pila è vuota, false in caso

contrario

Page 7: Strutture dati lineari Lista Pila Coda. Strutture dati Per gestire un insieme dinamico di elementi occorre implementarlo mediante una struttura dati.

Coda

La coda è una struttura dati di tipo FIFO che garantisce che il primo elemento inserito sia il primo a essere servito.

FIFO (First-In First-Out), il primo elemento a entrare è anche il primo a uscire

Page 8: Strutture dati lineari Lista Pila Coda. Strutture dati Per gestire un insieme dinamico di elementi occorre implementarlo mediante una struttura dati.

Operazioni sulla coda Le tipiche operazioni che si possono effettuare

su una coda sono le seguenti: enqueue (accodare)

consente di accodare un elemento alla coda dequeue (togliere dalla coda)

consente invece di eliminare l’elemento che da più tempo è presente nella coda

Page 9: Strutture dati lineari Lista Pila Coda. Strutture dati Per gestire un insieme dinamico di elementi occorre implementarlo mediante una struttura dati.

Lista concatenata

La lista concatenata è una collezione ordinata di elementi, ciascuno dei quali è concatenato al successivo mediante un riferimento che indica dove andare a prendere il successivo elemento.

In una lista concatenata non è possibile accedere in modo diretto a un elemento, bensì è necessario scorrere tutti gli elementi fino a raggiungere quello cercato.

Ogni elemento della lista è contenuto in un nodo, in cui è presente anche un puntatore all’elemento successivo.

L’ultimo elemento della lista avrà il puntatore nullo, mentre il puntatore al primo nodo si conserva in una variabile opportuna.

Page 10: Strutture dati lineari Lista Pila Coda. Strutture dati Per gestire un insieme dinamico di elementi occorre implementarlo mediante una struttura dati.

Operazioni sulla lista

Le operazioni principali che si possono effettuare su una lista sono: inserimento ricerca cancellazione

Esempio di cancellazione: