Il tipo di dato astratto Coda¶
Una coda è strutturata come descritto sotto, come una collezione ordinata di elementi che sono aggiunti alla fine, in coda, e rimossi dalla “testa” della coda. L’inserimento e l’estrazione di elementi da una coda obbedisce a una politica FIFO, first in first out. Le operazioni sono sotto.
Queue()
crea una nuova coda vuota. Non prende parametri e ritorna una coda vuota.enqueue(item)
aggiunge un nuovo elemento alla fine della coda. Prende come parametro l’elemento da aggiungere e non restituisce nulla.dequeue()
rimuove l’elemento dalla testa della coda. Non ha bisogno di parametri e ritorna l’elemento. La coda viene modificata.isEmpty()
controlla se la coda è vuota e ritorna un valore booleano. Non prende parametri.size()
ritorna il numero di elementi nella coda, un intero, e non ha bisogno di parametri.
Per esempio, assumendo che q
sia una coda che è stata creata e sia correntemente vuota, allora Tabella 1 mostra il risultato di una sequenza di operazioni sulla coda. I contenuti della coda sono mostrati dalla testa, a destra, alla coda, a sinistra. 4 è stato il primo elementi accodato e per cui è il primo elemento restuituito da dequeue.
Queue Operation | Queue Contents | Return Value |
---|---|---|
q.isEmpty() |
[] |
True |
q.enqueue(4) |
[4] |
|
q.enqueue('dog') |
['dog',4] |
|
q.enqueue(True) |
[True,'dog',4] |
|
q.size() |
[True,'dog',4] |
3 |
q.isEmpty() |
[True,'dog',4] |
False |
q.enqueue(8.4) |
[8.4,True,'dog',4] |
|
q.dequeue() |
[8.4,True,'dog'] |
4 |
q.dequeue() |
[8.4,True] |
'dog' |
q.size() |
[8.4,True] |
2 |