A linear data structure in which elements may be appended to or removed from either end.
This algorithm is difficult to implement with a standard queue, but with a deque it's easy.
To remove an item from a queue