Data Structures, Algorithms, & Applications in C++
Chapter 9, Exercise 9

(a)
The ADT is given below

ADT Deque { instances ordered list of elements; one end is called the front; the other is the rear; operations: isEmpty(): Return true if deque is empty, return false otherwise; getLeftElement(): Return leftmost element of deque; getRightElement(): Return rightmost element of deque; putAtLeft(x): Add x to left end of deque; putAtRight(x): Add x to right end of deque; removeFromLeft(): Delete leftmost element from deque and return it; removeFromRight(): Delete rightmost element from deque and return it; }