00001 class Link { // A singly-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 static Link* freelist; // Link class freelist 00006 Link(const Elem elemval, Link* nextval =NULL) // Constructor 1 00007 { element = elemval; next = nextval; } // Given Elem value 00008 Link(Link* nextval =NULL) { next = nextval; } // Constructor 2 00009 void* operator new(size_t); // Overloaded new operator 00010 void operator delete(void*); // Overloaded delete operator 00011 };