<aside> ℹ️

Struttura dati astratta

Organizzazione di un insieme di oggetti tale da poter essere rappresentata con strutture dati a sostegno delle operazioni che permettono la gestione degli oggetti in modo efficiente

</aside>

Una struttura dati astratta può essere un dizionario

Dati: un insieme $S$ di coppie $(elem, chiave)$

Operazioni:

Insert(elem e, chiave k)

Aggiunge ad S una nuova coppia (e,k)

Delete(elem e, chiave k)

Cancella da S la coppia con chiave k

Search(chiave k)

Se la chiave k è presente in S restituisce l’elemento e ad esso associato altrimenti restituisce null


Una struttura dati astratta definisce cosa vogliamo

Una struttura dati definisce come viene implementato ciò


Tabelle

<aside> ℹ️

Una tabella è una sequenza di elementi $E_i$ ciascuno dei quali è costituito da due parti:

Scopo della tabella è la memorizzazione delle informazioni $I_i$

Scopo della chiave è l’individualizzazione delle $I_i$ dall’esterno

</aside>

Le operazioni in una tabella sono:

L’operazione fondamentale che si esegue su una tabella è la ricerca di un elemento nota la sua chiave

Per ogni elemento $E_i$ della tabella si può definire la lunghezza della ricerca - denotata con $S_i$ - come il numero di prove necessarie per raggiungere $E_i$ - numero di chiavi lette fino a trovare $K_i$.

La lunghezza media di ricerca $S$ è la media delle $S_i$ per tutti gli elementi della tabella.