📄 p228.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 + -