Strutture Lineari: Pile Code Pila Coda Strutture Lineari: Pile Code Laboratorio di Programmazione II Corso di Laurea in Bioinformatica Dipartimento di Informatica - Università di Verona Sommario Strutture Lineari: Pile Code Pila Coda Denizione ed implementazione Pila Denizione ed implementazione Coda Denizione Pila Strutture Lineari: Pile Code Pila Coda Pila Strutture Lineari: Pile Code Pila Coda Operazioni di base Pila: Lista con particolare politica di accesso agli elementi Politica di accesso: Ultimi inseriti sono i primi ad uscire Last In First Out (LIFO) Operazioni principali: Push: inserimento in testa Pop: estrazione primo elemento Interfaccia Pila Strutture Lineari: Pile Code Pila Coda Pila Deniamo una interfaccia che denisce i metodi fondamentali per una Lista isEmpty(): vero se pila vuota. push(): inserisce elemento in cima alla pila. pop(): estrae elemento in cima alla pila. top(): restituisce l'elemento in cima alla lista. Pila.java Realizzare l'interfaccia Pila Strutture Lineari: Pile Code Pila Coda Realizzazione Pila Possimamo realizzare la pila utilizzando l'implementazione della lista Utilizzo i metodi deniti per la lista per implementare i nuovi metodi della pila Due possibilita': 1 2 utilizzo ListaArray utilizzo ListaLink Realizzare l'interfaccia Pila Strutture Lineari: Pile Code Pila Coda Utilizzo ListArray Scelgo come cima della pila l'elemento nale pop() = remove(length()-1) push(o) = insert(length(),o) Utilizzando ListaArray questo risulta molto eciente: inserire/eliminare in testa PilaArray.java → spostare tutti gli altri elementi Esercizi Strutture Lineari: Pile Code Pila Coda Esercizi Pila Realizzare il metodo copiaInversaInteri() della classe ClientePilaCoda Realizzare i metodi push, pop, top della classe PilaLink Denizione Coda Strutture Lineari: Pile Code Pila Coda Coda Strutture Lineari: Pile Code Pila Coda Operazioni di base Coda: Lista con particolare politica di accesso agli elementi Politica di accesso: Primi inseriti sono i primi ad uscire First In First Out (FIFO) Operazioni principali: Enqueue: inserimento in coda Dequeue: estrazione primo elemento Interfaccia Coda Strutture Lineari: Pile Code Pila Coda Coda Deniamo una interfaccia che denisce i metodi fondamentali per una Coda isEmpty(): vero se la coda e' vuota enqueue(elemento): inserisci l'elemento in coda dequeue(): estrae e restituisce il primo elemento della coda. Coda.java Realizzare l'interfaccia Coda Strutture Lineari: Pile Code Pila Coda Realizzazione Coda Realizzazione basata su ListaLink Utilizzo i metodi deniti per la lista per implementare i metodi della coda CodaLink.java Nota: Utilizzando un riferimento all'ultimo elemento della coda potrei avere una implementazione piu' eciente Esercizi Strutture Lineari: Pile Code Pila Coda Esercizi Coda realizzare il metodo copiaInteri della classe ClientePilaCoda realizzare il metodo fondiCode della classe ClientePilaCoda [facoltativo] realizzare il metodo sottoSequenza della classe ClienteLista.java