listnode.h

来自「该程序用VC实现了一个小型文件压缩与解压缩功能的程序」· C头文件 代码 · 共 56 行

H
56
字号
#ifndef LIST_NODE_CLASS
#define LIST_NODE_CLASS

#include <fstream.h>

template <class T>
class LinkedList;				

template <class T>
class HashTable;					

template <class T>
class ListNode
{
	friend class LinkedList<T>;	
	friend class HashTable<T>;
private:	
	ListNode<T>* link;

public:
	T data;

	ListNode(const T& item, ListNode<T>* next = NULL)
		:data(item), link(next)
	{}

	friend ostream&  operator << (ostream& os, 
		                         const ListNode<T>& node);
	
	friend ofstream& operator << (ofstream& ofs, 
		                          const ListNode<T>& node);

	friend ostream& operator << (ostream& os, 
								 const LinkedList<T>& list);

	friend ofstream& operator << (ofstream& ofs, 
								  const LinkedList<T>& list);
};

template <class T>
ostream& operator << (ostream& os, const ListNode<T>& node)
{
	os << setw(20) << "current node: " << &node << endl
	   << node.data
	   << setw(20) << "next node: " << node.link << endl;
	return os;
}

template <class T>
ofstream& operator << (ofstream& ofs, const ListNode<T>& node)
{
	ofs << node.data << endl;
	return ofs;
}

#endif 

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?