Classe lista concatenata doppia

Un puntatore, in ogni nodo, che punta al nodo precedente permette di ottimizzare il metodo pop_right(). Le operazioni di inserimento / rimozione in testa / coda hanno tutte complessità costante append_left(x) append_right(x) x <– pop_left() x <– pop_right() e permettono di utilizzare la lista, in modo efficiente, sia come stack che come coda. Classe nodo … Leggi tutto

Classe lista concatenata, con testa e coda

Se la lista concatenata ha un puntatore aggiuntivo alla sua coda (all’ultimo nodo a destra) è possibile ottimizzare l’operazione di inserimento in coda, append_right() append_right(x), aggiunge x a destra (in coda) append_left(x), aggiunge x a sinistra (in testa) x <– pop_right(), restituisce l’elemento in coda e lo elimina x <– pop_left(), restituisce l’elemento in testa … Leggi tutto

Classe lista concatenata

La lista concatenata ha l’obiettivo di ottimizzare le operazioni di inserimento e di rimozione degli elementi Le informazioni sono salvate in nodi Ogni nodo contiene un puntatore al prossimo nodo nella lista Alla lista si accede conoscendo il puntatore alla testa (al primo a sinistra) Realizza i metodi tradizionali per le strutture dati append_right(x), aggiunge … Leggi tutto

Stack, usa deque

Le operazioni minime per uno stack (LIFO, last in first out).La struttura dati nativa collections.deque può essere utilizzata come uno stack. Operazione Implementazione stack=collections.deque() Uno stack vuoto z.push(x) Aggiunge x allo stack stack.append(x) Aggiunge a destra x <– z.pop() Restituisce l’ultimo elemento inserito e lo elimina x=stack.pop() Toglie da destra… z.is_empty() Lo stack è vuoto? … Leggi tutto

Coda, usa deque

Le operazioni minime per una coda (FIFO, first in first out).La struttura dati collections.deque può essere utilizzata come una coda. Operazione Implementazione coda=collections.deque() Una coda vuota z.enqueue(x) Aggiunge x alla coda coda.appendleft(x) Aggiunge a sinistra… x <– z.dequeue() Restituisce il primo elemento inserito e lo elimina x=coda.pop() Toglie da destra… z.is_empty() La coda è vuota? … Leggi tutto