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

any() / all()

any() A volte è necessario controllare se in una sequenza compare almeno un valore non nullo La funzione predefinita any() risponde a questa richiesta all() A volte è necessario controllare se in una sequenza tutti i valori sono non nulli La funzione predefinita all() risponde a questa richiesta

enumerate()

La funzione riceve come argomento una sequenza (stringhe, tuple, liste, iteratori, …) e restituisce un iteratore alle coppie costituite da un indice crescente e un elemento della sequenza Si utilizza nei cicli for per associare un indice automatico a ognuno dei valori start L’indice associato da enumerate() parte normalmente da 0.Può essere fornito un valore … 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