Ricordiamo l'equazione di N. Wirth: Programmi = Algoritmo + Strutture di Dati
e formalizziamo l'equazione Struttura di Dati = Insiemi + Operazioni
attraverso la nozione di
Definizione [algebra eterogenea]
$A=\lang[A_1,..., A_n], [f_1, ..., f_k]\rang$ dove
Studiamo possibili implementazioni per la struttura dati PA
Liste concatenate
Vantaggi: semplicità
Svantaggi: costo medio di ciascuna operazione $O(n)$
Tabelle hash
Vantaggi: costo medio di ciascuna operazione $O(1)$
Svantaggi: costo di ciascuna operazione $O(n)$ se si sbaglia a impostare alcuni parametri
Una tabella Hash costituisce un'implementazione valida per PA. Distinguiamo tra:
In funzione di dove sono memorizzati i dati si presentano 2 metodi di gestione
Abbiamo quindi 4 casi possibili...