Diapositiva 1 - Francesco Accarino

annuncio pubblicitario
Strutture Dati: La Coda
Prof. Francesco Accarino
IIS Sesto San Giovanni
Via Leopardi 132
La Coda
La struttura di dati Coda rappresenta un insieme di elementi nel quale le
operazioni di inserimento e cancellazione seguono una politica FIFO (First In
First Out).
Ciò significa che le operazioni di inserimento di nuovi elementi (detto push)
avviene in coda e l’operazione di cancellazione di elementi (detta pop) avviene
in testa.
Appunti di Informatica Prof. Accarino
2
La coda in java utilizzando i vettori



La gestione della coda non si discosta molto dalla gestione della
pila, infatti avremo ancorauna classe che ha come attributi il
vettore, l’indice testa e la numerosità n, con l’aggiunta dell’indice di
coda
Il costruttore si limita ad istanziare il vettore ricevendo la numerosità
e ad inizializzare l’indice testa e l’indice di coda
E i due metodi push e pop
Coda
tipo[ ] p
Int testa
Int coda
Int n
+Coda(int n)
+ push(tipo d):void
+pop(void):tipo
Appunti di Informatica Prof. Accarino
3
Operazione di Push
A
B
C
D
E
F
0
1
2
3
4
5
Testa
6
7
8
7
8
Fine
A
B
C
D
E
F
G
0
1
2
3
4
5
6
Testa
Fine
A
B
C
D
E
F
G
H
I
0
1
2
3
4
5
6
7
8
Testa
Coda Piena
Fine
Appunti di Informatica Prof. Accarino
4
Metodo Push

Supponendo che la Pila abbia il vettore di nome c e sia
di un certo tipo e dimensione n
il metodo push sarebbe semplicemente:
public void push(tipo s){
if(coda==n)
JOptionPane.showMessageDialog(null, "La coda è piena");
else
{
c[coda]=s;
coda++;
}
}
Appunti di Informatica Prof. Accarino
5
Operazione di Pop
Data una Coda
A
B
C
D
E
F
0
1
2
3
4
5
Testa
6
7
8
Fine
Per Estrarre un elemento dalla coda
A
0
B
C
D
E
F
1
2
3
4
5
Testa
6
7
8
Fine
Appunti di Informatica Prof. Accarino
6
Operazione di Pop
Spostare tutti gli elementi verso sinistra
B
C
D
E
F
0
1
2
3
4
5
Testa
7
8
7
8
Fine
B
C
D
E
F
0
1
2
3
4
Testa
6
5
6
Fine
Appunti di Informatica Prof. Accarino
Spostare fine a sinistra
7
Operazione di Pop
B
C
D
E
F
0
1
2
3
4
Testa
5
6
7
8
6
7
8
Fine
Fine
0
1
2
3
4
5
Coda Vuota
Testa
Appunti di Informatica Prof. Accarino
8
Metodo Pop

Supponendo che la Pila abbia il vettore di nome c e sia
di un certo tipo e dimensione n
il metodo pop sarebbe:
public tipo pop(){
tipo l="";
int i;
if(testa==coda)
JOptionPane.showMessageDialog(null, "La coda è vuota");
else{
l=p[testa];
for(i=1;i<dim;i++)
p[i-1]=p[i];
coda--;
}
return l;
}
Appunti di Informatica Prof. Accarino
9
Scarica