如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
作为抽象数据类型的数组顺序表稀疏矩阵字符串作为抽象数据类型的数组一维数组的特点数组的定义和初始化main(){szcla1[3]={3,5,7},*elem;for(inti=0;i<3;i++)cout<<a1[i].get_value()<<“\n”;//静态elem=a1;for(inti=0;i<3;i++){cout<<elem->get_value()<<“\n”;//动态elem++;}return0;}一维数组(Array)类的定义~Array(){delete[]elements;}Array<Type>&operator=//数组复制(constArray<Type>&A);Type&operator[](inti);//取元素值intLength()const{returnArraySize;}//取数组长度voidReSize(intsz);//扩充数组}template<classType>voidArray<Type>::getArray(){//私有函数:创建数组存储空间elements=newType[ArraySize];if(elements==NULL){arraySize=0;cerr<<“存储分配错!"<<endl;return;}template<classType>Array<Type>::Array(intsz){//构造函数if(sz<=0){arraySize=0;cerr<<“非法数组大小”<<endl;return;}ArraySize=sz;getArray();}template<classType>Array<Type>::Array(Array<Type>&x){//复制构造函数intn=ArraySize=x.ArraySize;elements=newType[n];if(elements==NULL){arraySize=0;cerr<<“存储分配错”<<endl;return;}Type*srcptr=x.elements;Type*destptr=elements;while(n--)*destptr++=*srcptr++;}template<classType>Type&Array<Type>::operator[](inti){//按数组名及下标i,取数组元素的值if(i<0||i>ArraySize-1){cerr<<“数组下标超界”<<endl;returnNULL;}returnelement[i];}使用该函数于赋值语句Pos=Position[i-1]+Number[i-1]template<classType>voidArray<Type>::Resize(intsz){if(sz>=0&&sz!=ArraySize){Type*newarray=newType[sz];//创建新数组if(newarray==NULL){cerr<<“存储分配错”<<endl;return;}intn=(sz<=ArraySize)?sz:ArraySize;//按新的大小确定传送元素个数Type*srcptr=elements;//源数组指针Type*destptr=newarray;//目标数组指针while(n--)*destptr++=*srcptr++;//从源数组向目标数组传送delete[]elements;elements=newarray;ArraySize=sz;}}二维数组三维数组三维数组n维数组线性表(LinearList)线性表的特点顺序表(SequentialList)顺序表(SeqList)类的定义intFind(Type&x)const;//查找intLocate(inti)const;//定位intInsert(Type&x,inti);//插入intRemove(Type&x);//删除intNext(Type&x);//后继intPrior(Type&x);//前驱intIsEmpty(){returnlast==-1;}intIsFull(){returnlast==MaxSize-1;}TypeGet(inti){//提取returni<0||i>last?NULL:data[i];}}顺序表部分公共操作的实现template<classType>intSeqList<Type>::Find(Type&x)con