欢迎来到天天文库
浏览记录
ID:59510125
大小:19.00 KB
页数:5页
时间:2020-11-04
《顺序表基本操作(C++版).doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、#includeusingnamespacestd;intOVERFLOW=-2;intERROR=0;intOK=1;intj;//---------顺序表的存储结构----------#defineMAXSIZE10//当前顺序表可能达到的最大长度#defineLISTINCREMENT5typedefintElemType;typedefintStatus;typedefstruct{ElemType*elem;//存储空间的基地址intlength;//当前长度,表中有多少个元素intlistsize;}SqList;//------
2、----初始化--------------------StatusInitList_Sq(SqList&L){//构造一个空的顺序表LL.elem=newElemType[MAXSIZE];//为顺序表分配一个大小为MAXSIZE的数组空间if(!L.elem)exit(OVERFLOW);//存储空间分配失败L.listsize=MAXSIZE;L.length=0;//空表的长度为0returnOK;}//----------建立------------------------StatusBuild_Sq(SqList&L){inti,n;cout<<"请输
3、入要建立的顺序表的中元素的个数:"<>n;if(n>MAXSIZE)//如果n的值大于当前空间{L.elem=newElemType[n+LISTINCREMENT];if(!L.elem)exit(OVERFLOW);L.listsize=n+LISTINCREMENT;}cout<<"请输入这n个元素:"<>L.elem[i];L.length=n;returnOK;}//----------查找------------------------intLocateElem_Sq(SqLis
4、tL,ElemTypee){for(inti=0;i5、6、i>L.length+1)returnERROR;//i值不合法if(L.length==MAXSIZE)returnERROR;//当7、前存储空间已满for(j=L.length-1;j>=i-1;j--)L.elem[j+1]=L.elem[j];//插入位置及之后的元素后移L.elem[i-1]=e;//将新元素e放入第i个位置++L.length;//表长增1returnOK;}//-----------删除第i个元素--------------------------StatusListDelete_Sq(SqList&L,inti,ElemType&e){//在顺序表L中删除第i个元素,并用e返回其值//i的值的合法范围是1<=i<=L.lengthif((i<1)8、9、(i>L.len10、gth))returnERROR;e=L.elem[i-1];//将欲删除的元素保留在e中for(j=i;j<=L.length-1;j++)L.elem[j-1]=L.elem[j];--L.length;returnOK;}//-----------删除值为e的结点-----------------------StatusListDel_Sq(SqList&L,inte){intj;inttemp=0;for(inti=0;i11、L.elem[j-1]=L.elem[j];--L.length;i--;temp=1;}}if(temp==0)cout<<"没有该元素"<12、;while(choic
5、
6、i>L.length+1)returnERROR;//i值不合法if(L.length==MAXSIZE)returnERROR;//当
7、前存储空间已满for(j=L.length-1;j>=i-1;j--)L.elem[j+1]=L.elem[j];//插入位置及之后的元素后移L.elem[i-1]=e;//将新元素e放入第i个位置++L.length;//表长增1returnOK;}//-----------删除第i个元素--------------------------StatusListDelete_Sq(SqList&L,inti,ElemType&e){//在顺序表L中删除第i个元素,并用e返回其值//i的值的合法范围是1<=i<=L.lengthif((i<1)
8、
9、(i>L.len
10、gth))returnERROR;e=L.elem[i-1];//将欲删除的元素保留在e中for(j=i;j<=L.length-1;j++)L.elem[j-1]=L.elem[j];--L.length;returnOK;}//-----------删除值为e的结点-----------------------StatusListDel_Sq(SqList&L,inte){intj;inttemp=0;for(inti=0;i11、L.elem[j-1]=L.elem[j];--L.length;i--;temp=1;}}if(temp==0)cout<<"没有该元素"<12、;while(choic
11、L.elem[j-1]=L.elem[j];--L.length;i--;temp=1;}}if(temp==0)cout<<"没有该元素"<12、;while(choic
12、;while(choic
此文档下载收益归作者所有