⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 p228.cpp

📁 清华大学-数据结构 清华大学-数据结构 清华大学-数据结构
💻 CPP
字号:
#include "iostream.h"
		template <class Type> class DataList;

		template <class Type> class Node {					//数据表中结点类的定义
		friend class DataList<Type>;
		public:
		   Node (  ) : key ( 0 ) { }			//构造函数
		   Node ( const Type & value ) : key ( value ) { }			//构造函数
		   Type getKey ( ) const { return key; }					//读取关键码
		   void setKey ( Type k ) { key = k; }					//修改关键码
		   friend ostream &operator << (ostream &OutStream, const Node<Type> & OutNode );
		   friend istream & operator >> ( istream & InStream, Node<Type> & InNode );
		private:
		   Type key;								//关键码域  
//		   other;									//其他域
		}; 

		template <class Type> class DataList {					//数据表类定义
		public:
		   DataList ( int sz = 10 ) : ArraySize (sz), Element (new Node<Type>[sz+1]) { }
		   virtual ~DataList ( ) { delete [ ] Element; }
		   int GetSize() {return CurrentSize;}
		   friend ostream &operator << (ostream &OutStream, const DataList<Type> & OutList );
		   friend istream & operator >> ( istream & InStream, DataList<Type> & InList );
		protected:
		   Node<Type> *Element;									//数据表中存储数据的数组
		   int ArraySize, CurrentSize;							//数组最大长度和当前长度
		};

		template <class Type> ostream & operator << ( ostream & OutStream, const Node<Type> & OutNode ) {
		   OutStream << OutNode.key;
		   return OutStream;
		}

		template <class Type> istream & operator >> ( istream & InStream, Node<Type> & InNode ) {
		   
		   InStream >> InNode.key;
		   return InStream;
		}


		template <class Type> ostream & operator << ( ostream & OutStream, const DataList<Type> & OutList ) {
		   OutStream << "Array Contents : \n";					//输出表的所有表项到OutStream
		   for ( int i = 1; i <=OutList.CurrentSize; i++ ) OutStream << OutList.Element[i] << ' ';
		   OutStream << endl;								//输出表的当前长度到OutStream
		   OutStream << "Array Current Size : " << OutList.CurrentSize << endl;
		   return OutStream;
		}

		template <class Type> istream & operator >> ( istream & InStream, DataList<Type> & InList ) {
		   cout << "Enter array Current Size : ";
		   InStream >> InList.CurrentSize;						//从Instream输入表的当前长度
		   cout << "Enter array elements : \n";
		   for ( int i=1; i <=InList.CurrentSize; i++ )				//从Instream输入表的全部表项
		   { cout << "Element " << i << " : ";  
		     InStream >> InList.Element[i]; 
		   }
		   return InStream;
		}

⌨️ 快捷键说明

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