Oppure

Loading
30/08/10 19:14
bruno.demarini
Ciao, sto imparando il Pascal da un manuale, sono arrivato alle liste concatenate, ma leggendo dal manuale non riesco a capire cosa siano (ho solo un'idea vaga) e, praticamente, quando si usano... Qualcuno me lo potrebbe spiegare, possibilmente nel modo più semplice possibile ?
Grazie mille in anticipo :)
aaa
30/08/10 20:12
Poggi Marco
Le liste concatenate servono per destire la memoria in modo dinamico.

In particolare una lista concatenata consiste in una catena di record (chiamati nodi), ognuna delle quali contiene la parte informativa, i dati da memorizzare, e un puntatore del nodo successivo alla catena stessa.

Allego un grafico rappresentante le liste:
aaa
30/08/10 22:11
pierotofy
E' una struttura che ti permette di rappresentare una lista di elementi, ciascun elemento contenente un riferimento all'elemento successivo (nel caso di una lista semplice). Esistono diversi tipi di liste concatenate, singole (esiste solo un riferimento all'elemento successivo), doppie (riferimento all'elemento successivo e precedente), circolari (l'ultimo elemento contiene un riferimento al primo) sono le principali.

Il vantaggio principale e' che l'inserimento di un elemento in una qualsiasi posizione della lista avviene in tempo costante O(1), ovvero richiede una sola operazione.
Lo svantaggio principale e' che per accedere ad un elemento nel mezzo della lista, devi attraversare tutti gli elementi che lo precedono (dal momento che l'unico elemento che possiede un riferimento ad un elemento N e' l'elemento N-1).

Ma per una completa descrizione consulterei questa pagina: it.wikipedia.org/wiki/…
Ultima modifica effettuata da pierotofy 31/08/10 15:20
Il mio blog: piero.dev
31/08/10 10:54
bruno.demarini
Wow, grazie ad entrambi per le risposte, ora ho le idee più chiare.
Grazie mille, ciao .
aaa
31/08/10 19:54
Alex
Un altro vantaggio molto importante è che puoi inserire/cancellare un nodo in mezzo alla lista cosa che ad esempio con gli array non puoi fare...
aaa
31/08/10 20:09
bruno.demarini
Postato originariamente da Alex:

Un altro vantaggio molto importante è che puoi inserire/cancellare un nodo in mezzo alla lista cosa che ad esempio con gli array non puoi fare...


Se non sbaglio quello si può fare lo stesso, eliminando l'elemento e spostando gli altri a sinistra o, aggiungendo, spostando gli elementi a destra (ma forse mi sbaglio).
aaa