Strutture Lineari: Pile Code - Laboratorio di Programmazione II

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