数组的抽象数据类型
数组其实是一个连续储存的线性表,而由于高维数组都可以转化成对应的一维数组,所以从这个角度来说,数组就是一个连续存储的线性表
抽象数据类型是对一个数学模型及定义其上的一种称谓。在程序设计中语言中,抽象数据类型就是基于原子型数据类型构建的结构型数据类型以及定义在其上的操作
最常用的数据结构是数组结构,数组结构的特点是:
成分数据的个数固定,它们之间的逻辑关系由数组下标来体现。这些成分数据按照序号的先后顺序连续地排列起来。每一个成分数据具有相同的结构,也就是属于同一个数据类型。所有的成分数据被依序安排在一片连续的存储单元中。所以,数组结构是一个线性的、均匀的、其成分数据可随机访问的结构
数组的抽象类型描述如下:
const int DefaultSize = 100;
template <class Type>
template <class Type>
class Array
{
Type *elements;
int ArraySize;
public:
Array(int Size=DefaultSize);
Array(const Array<Type>& x);
~Array() {delate [ ] elements;}
Array<Type> & operator = (const Array<Type> & rhs);
Type& operator [ ] ( int i );
int Length () const { return ArraySize; }
void ReSize ( int sz );
}
数组的抽象数据类型中,类的私有成员变量包括指针型变量 elements 和整型变量 ArraySize ,其中 elements 给出了数组的数据集合,ArraySize 表示数组中元素的个数,并通过公共成员函数 Resize() 来对 ArraySize 进行修改以动态地改变数组容量