00001 class Link { // A doubly-linked list node 00002 public: // with freelist 00003 Elem element; // Elem value for this node 00004 Link* next; // Pointer to next node in list 00005 Link* prev; // Pointer to previous node 00006 static Link* freelist; // Link class freelist 00007 Link(const Elem Elemval, Link* nextp =NULL, Link* prevp =NULL) 00008 { element = Elemval; next = nextp; prev = prevp;} 00009 Link(Link* nextp =NULL, Link* prevp = NULL) 00010 { next = nextp; prev = prevp; } 00011 void* operator new(size_t); // Overloaded new operator 00012 void operator delete(void*); // Overloaded delete operator 00013 };