// Null Node // // Douglas Thrift // // $Id$ #ifndef _NullNode_hpp_ #define _NullNode_hpp_ #include "Node.hpp" template class NullNode : public Node { private: bool null; NullNode* next; NullNode* previous; public: NullNode() : null(true) {} NullNode(const Type& value) : Node::Node(value), null(true) {} ~NullNode() {} void addNext(const Type& value); void addPrevious(const Type& value); void removeNext(void); void removePrevious(void); void setNext(NullNode* next) { this->next = next; } void setPrevious(NullNode* previous) { this->previous = previous; } NullNode* getNext(void) const { return next; } NullNode* getPrevious(void) const { return next; } }; template void NullNode::removeNext(void) { NullNode* behind = next->next; delete next; next = behind; } template void NullNode::removePrevious(void) { NullNode* ahead = previous->previous; delete previous; previous = ahead; } #endif // _NullNode_hpp_