Sei sulla pagina 1di 11

2009-2010

Ingegneria Aerospaziale
Prof. A. Palomba - Elementi di Informatica (E-Z)

Linguaggio C++
13
Pila-Coda

Linguaggio C++ 13

Coda

Struttura dati con modalit di accesso del tipo FIFO


(First In / First out )
Operazioni sulla coda

Es: Coda allo sportello postale

Inserimento elemento

pop
testa

Estrazione elemento
Visione elementi
Struttura
Strutturadidisimulazione
simulazioneininambiente
ambienteC++:
C++:array
array
Predicati

push
Full

coda piena Inserimento non possibile

Empty coda vuota Prelievo non possibile

Linguaggio C++ 13

Esercizio
Assegnati in ingresso le coppie di valori (elem: reale, op :intero)
con le specifiche:
op =1 inserimento op=2 prelievo op=0 fine operazioni
simulare la gestione di una coda con visita finale
1
1
1
2
1
1
2
2
0

2.0
3.1
4.2

3.2
2.5

3.2
2.5

Linguaggio C++ 13

In caso di inserimento (op = 1) gli elementi


vengono inseriti nella struttura secondo un
indice che cresce (coda=coda+1)

3.0

3.1

3.2

3.3

In caso di prelievo (op = 2) una operazione di 0


shift verso lalto sposta tutti gli elementi di una
1
posizione nella struttura (overwrite);
2
lindice si decrementa (coda=coda-1)

3.1
3.2
3.3

Linguaggio C++ 13

Linguaggio C++ 13

Linguaggio C++ 13

Pila

Struttura dati con modalit di accesso del tipo LIFO


(Last In / First out )
Operazioni sulla coda

Pila di piatti
push
pop

Inserimento elemento
Estrazione elemento

testa

Visione elementi

Struttura
Strutturadidisimulazione
simulazioneininambiente
ambienteC++:
C++:array
array
Predicati
Full

coda piena Inserimento non possibile

Empty coda vuota Prelievo non possibile

Linguaggio C++ 13

Esercizio
Assegnati in ingresso le coppie di valori (elem: reale, op :intero)
con le specifiche:
op =1 inserimento op=2 prelievo op=0 fine operazioni
simulare la gestione di una pila con visita finale
1
1
1
2
1
1
2
2
0

2.0
3.1
4.2

2.0
3.1

In caso di inserimento (op = 1) gli elementi


vengono inseriti nella struttura secondo un
indice che cresce (coda=coda+1)

3.2
2.5

Linguaggio C++ 13

In caso di prelievo (op = 2) necessario


Solo decrementare lindice (coda=coda-1)

3.0

3.1

3.2

3.3

3.1

3.2

3.3

Linguaggio C++ 13

Linguaggio C++ 13

10

Linguaggio C++ 13

11

Potrebbero piacerti anche