User's Guide to the GNU C++ Class Library - Deque
Node: Deque
Next: PQ
Prev: Queue
Up: Top
Double ended Queues
Deques are declared as an ``abstract'' class. They are currently implemented in two ways.
-
XPDeque -
implement dynamically-sized Deques via XPlexes.
-
DLDeque -
implement dynamically-size Deques via linked lists.
All possess the same capabilities. They differ only in constructors. XPDeque constructors optionally take a chunk size argument. DLDeque constructors take no argument.
Double-ended queues support both stack-like and queue-like capabilities:
Assume the declaration of a base element x .
-
Deque d; or Deque d(int initial_capacity) -
declares a deque.
-
d.empty() -
returns true if deque d is empty.
-
d.full() -
returns true if deque d is full. Always returns false in current implementations.
-
d.length() -
returns the current number of elements in the deque.
-
d.enq(x) -
inserts x at the rear of deque d.
-
d.push(x) -
inserts x at the front of deque d.
-
x = d.deq() -
dequeues and returns the front of deque
-
d.front() -
returns a reference to the front of deque.
-
d.rear() -
returns a reference to the rear of the deque.
-
d.del_front() -
deletes, but does not return the front of deque
-
d.del_rear() -
deletes, but does not return the rear of the deque.
-
d.clear() -
removes all elements from the deque.
Next: PQ
Up: Top