Note
Un mazzo (coda a due fini, Dequeue) è una struttura dati che si comporta come un mazzo di carte, di cui ogni una contiene un elemento. È possibile aggiungere sia in testa che in coda alla struttura:
PushFront(Q,e): inserisce l’elementoein testa al mazzoPushBack(Q,e): inserisce l’elementoein coda al mazzoPopFront(Q): restituisce l’elemento in testa, cancellandoloPopBack(Q): restituisce l’elemento in coda, cancellandoloEmpty(Q): restituiscetruese il mazzo è vuoto
Implementazione con una lista doppiamente concatenata
Si ha che
PushBackePopFrontsi comportano comeEnqueueeDequeuedi una coda realizzata con una lista, con l’aggiunta di:
PopBack(Q): restituiscetail.prevse diverso dahead, rimuovendolo dalla listaPushFront(Q,e): aggiunge l’elementoein testa, aggiornandoheade il suo successoreEmpty(Q): restituiscehead.next = tail
Implementazione con un vettore
Lo stoccaggio dei dati è effettuato in modo analogo alla coda semplice. Si ha che
PushBackePopFrontsi comportano comeEnqueueeDequeuedi una coda realizzata con un vettore, con l’aggiunta di:
PopBack(Q): se , restituisceA[tail]corrente, decrementan, decrementatailPushFront(Q,e): , decrementahead, inserisce l’elementoeinA[head]e incrementaEmpty(Q): restituiscen = 0