www.pudn.com > compressor.zip > ListNode.h
#ifndef LIST_NODE_CLASS #define LIST_NODE_CLASS #includetemplate class LinkedList; template class HashTable; template class ListNode { friend class LinkedList ; friend class HashTable ; private: ListNode * link; public: T data; ListNode(const T& item, ListNode * next = NULL) :data(item), link(next) {} friend ostream& operator << (ostream& os, const ListNode & node); friend ofstream& operator << (ofstream& ofs, const ListNode & node); friend ostream& operator << (ostream& os, const LinkedList & list); friend ofstream& operator << (ofstream& ofs, const LinkedList & list); }; template ostream& operator << (ostream& os, const ListNode & node) { os << setw(20) << "current node: " << &node << endl << node.data << setw(20) << "next node: " << node.link << endl; return os; } template ofstream& operator << (ofstream& ofs, const ListNode & node) { ofs << node.data << endl; return ofs; } #endif