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'elemento e in testa al mazzoPushBack(Q,e): inserisce l'elemento e in coda al mazzoPopFront(Q): restituisce l'elemento in testa, cancellandoloPopBack(Q): restituisce l'elemento in coda, cancellandoloEmpty(Q): restituisce true se il mazzo è vuotoSi ha che PushBack e PopFront si comportano come Enqueue e Dequeue di una coda realizzata con una lista, con l'aggiunta di:
PopBack(Q): restituisce tail.prev se diverso da head, rimuovendolo dalla lista PushFront(Q,e): aggiunge l'elemento e in testa, aggiornando head e il suo successore Empty(Q): restituisce head.next = tail Lo stoccaggio dei dati è effettuato in modo analogo alla coda semplice.
Si ha che PushBack e PopFront si comportano come Enqueue e Dequeue di una coda realizzata con un vettore, con l'aggiunta di:
PopBack(Q): se A[tail] corrente, decrementa n, decrementa tail PushFront(Q,e): head, inserisce l'elemento e in A[head] e incrementa Empty(Q): restituisce n = 0