// Doubly Linked List // // Douglas Thrift // // $Id$ #ifndef _DoublyLinkedList_hpp_ #define _DoublyLinkedList_hpp_ #include "NullNode.hpp" #include "Iterator.hpp" template class DoublyLinkedList { private: NullNode front; NullNode back; public: DoublyLinkedList() { front.setNext(&back); back.setPrevious(&front); } ~DoublyLinkedList(); void addFront(const Type& value) { front.addNext(value); } void addBack(const Type& value) { back.addPrevious(value); } bool contains(const Type& value) { return front.contains(value, &back); } }; template DoublyLinkedList::~DoublyLinkedList() { while (front.getNext() != &back) front.removeNext(); } #endif // _DoublyLinkedList_hpp_