struct Node { // a node in the deque Object element; // element Node* prev; // previous node Node* next; // next node Node(const Object& e = Object(), Node* p = NULL, Node* n = NULL) : element(e), prev(p), next(n) { } // constructor }; typedef Node* NodePtr; // pointer to node