Algoritmi e strutture dati

Liste

Una lista è una struttura dati e più esattamente una sequenza di elementi di un certo tipo, in cui è possibile aggiungere o togliere elementi. Per far questo occorre specificare la posizione relativa all’ interno della sequenza nella quale il nuovo elemento va aggiunto o dalla quale il vecchio elemento va tolto. A differenza del vettore che è una struttura a dimensione fissa, dove è possibile accedere direttamente ad ogni elemento direttamente specificandone l’ indice, la lista è a dimensione variabile e si può accedere direttamente solo ad un ristretto sottoinsieme di elementi. Solitamente l’ accesso è diretto solo al primo e all’ ultimo elemento. Gli accessi agli altri elementi avvengono per scansione della lista; ci si sposta via via da un elemento ad uno adiacente nella sequenza, fino a raggiungere l’ elemento successivo. L’ insieme degli operatori tipici della lista sono:

La specifica sintattica di questi operatori è la seguente:

Indichiamo con il termine ai tutte le sequenze di elementi di una lista, elementi di lunghezza arbitraria e di tipo tipoelem. Sia L una generica lista e siano p e q le posizioni dei generici elementi ai e aj in L. Sia b un boleano. Allora la specifica semantica della lista sarà data dalle seguenti funzioni, con relative precondizioni e postcondizioni:

E’ possibile accedere ad un elemento di una lista conoscendone solo la sua posizione, ottenibile con gli operatori succlista e predlista partendo da primolista o ultimolista. In sostanza occorre scandire interamente la lista partendo dalla prima oppure dall’ ultima posizione. Si noti che le operazione di inserzione e di cancellazione “allungano” oppure “accorciano” la lista provocando il cambiamento della posizione relativa degli elementi della lista. Ci sono vari modi per realizzare le liste, due modi molto utilizzati sono i seguenti:























































Tutto quanto riportato in questa pagina è a puro scopo informativo personale. Se non ti trovi in accordo con quanto riportato nella pagina, vuoi fare delle precisazioni, vuoi fare delle aggiunte o hai delle proposte e dei consigli da dare, puoi farlo mandando un email. Ogni indicazione è fondamentale per la continua crescita del sito.