A deque (pronounced "deck") is an abstract data type that combines what a stack can do and what a queue can do. Thus, users are allowed to add items to either end of a deque and inspect/remove them from either end. Thus, a deque can act as stack or queue. Given the following ADT specification, implement the behavior of deque based on a circular array as the one discussed for an array-based implementation of the queue. Template Class Deque { Public: int size(); Boolean isEmpty(); // similar to push Void insertFirst(T e); // similar to enqueue Void insertLast(T e); // similar to dequeue T removeFirst(); // similar to pop T removeLast(); // returns the first element of deque without removing it T first(); // returns the last of deque without removing it T last(); }
A deque (pronounced "deck") is an abstract data type that combines what a stack can do and what a queue can do. Thus, users are allowed to add items to either end of a deque and inspect/remove them from either end. Thus, a deque can act as stack or queue.
Given the following ADT specification, implement the behavior of deque based on a circular array as the one discussed for an array-based implementation of the queue.
Template<class T>
Class Deque
{
Public:
int size();
Boolean isEmpty();
// similar to push
Void insertFirst(T e);
// similar to enqueue
Void insertLast(T e);
// similar to dequeue
T removeFirst();
// similar to pop
T removeLast();
// returns the first element of deque without removing it
T first();
// returns the last of deque without removing it
T last();
}
Step by step
Solved in 4 steps with 3 images