數(shù)組的抽象數(shù)據(jù)類型
數(shù)組其實是一個連續(xù)儲存的線性表,而由于高維數(shù)組都可以轉(zhuǎn)化成對應(yīng)的一維數(shù)組,所以從這個角度來說,數(shù)組就是一個連續(xù)存儲的線性表
抽象數(shù)據(jù)類型是對一個數(shù)學模型及定義其上的一種稱謂。在程序設(shè)計中語言中,抽象數(shù)據(jù)類型就是基于原子型數(shù)據(jù)類型構(gòu)建的結(jié)構(gòu)型數(shù)據(jù)類型以及定義在其上的操作
最常用的數(shù)據(jù)結(jié)構(gòu)是數(shù)組結(jié)構(gòu),數(shù)組結(jié)構(gòu)的特點是:
成分數(shù)據(jù)的個數(shù)固定,它們之間的邏輯關(guān)系由數(shù)組下標來體現(xiàn)。這些成分數(shù)據(jù)按照序號的先后順序連續(xù)地排列起來。每一個成分數(shù)據(jù)具有相同的結(jié)構(gòu),也就是屬于同一個數(shù)據(jù)類型。所有的成分數(shù)據(jù)被依序安排在一片連續(xù)的存儲單元中。所以,數(shù)組結(jié)構(gòu)是一個線性的、均勻的、其成分數(shù)據(jù)可隨機訪問的結(jié)構(gòu)
數(shù)組的抽象類型描述如下:
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 );
}
數(shù)組的抽象數(shù)據(jù)類型中,類的私有成員變量包括指針型變量 elements 和整型變量 ArraySize ,其中?elements 給出了數(shù)組的數(shù)據(jù)集合,ArraySize 表示數(shù)組中元素的個數(shù),并通過公共成員函數(shù) Resize() 來對?ArraySize 進行修改以動態(tài)地改變數(shù)組容量