欢迎来到天天文库
浏览记录
ID:34463071
大小:108.00 KB
页数:3页
时间:2019-03-06
《实训1顺序表的实现和应用》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、实训1顺序表的实现和应用实训目的:1.熟悉线性表的定义和基本操作;2.掌握线性表的顺序存储结构设计与基本操作的实现。实训内容与要求:1.定义线性表的顺序存储表示;2.基于所设计的存储结构实现线性表的基本操作;3.编写一个主程序对所实现的线性表进行测试;实训题目:使用菜单方式实现顺序表的各种操作,包括创建、插入、删除、显示。算法设计:#include#defineOK1#defineERROR0typedefintElemType;#defineMAXSIZE100#defineINC
2、REMENT10typedefstruct{ElemType*elem;intlength;intlistsize;}SqList;staticSqListL;staticinte;intInitList_Sq(SqList*L){//创建顺序表inti,length,e;cout<<"输入顺序表的长度:";cin>>length;L->elem=newElemType[MAXSIZE];if(!L->elem)returnERROR;cout<<"输入”<3、for(i=0;i>e;L->elem[i]=e;}L->length=length;L->listsize=MAXSIZE;returnOK;}voidListTraverse(SqList*L){//显示顺序表inti;cout<<"当前表为:";for(i=0;ilength;i++)cout<elem[i]<<”“;cout<4、5、6、m>L->length+1)returnERROR;if(L->length>L->listsize){ElemType*newbase;newbase=newElemType[L->listsize+INCREMENT];if(!newbase)returnERROR;L->elem=newbase;L->listsize+=INCREMENT;}ElemType*p,*q;q=&(L->elem[m-1]);for(p=&(L->elem[L->length-1]);p>=q;p--)*(p+1)=7、*p;*q=e;L->length++;returnOK;}intListDelete_Sq(SqList*L,intm){//在顺序表中删除元素if(m<18、9、m>L->length)returnERROR;ElemType*p;p=&(L->elem[m-1]);for(;mlength;m++)L->elem[m-1]=L->elem[m];L->length--;returnOK;}intmain(){//主函数inti,n,m;if(InitList_Sq(&L)==ERROR){cout10、<<"创建失败";returnERROR;}ListTraverse(&L);cout<<"输入要插入元素的个数:";cin>>n;cout<<"输入要插入的元素及插入的位置,以空格隔开:";for(i=0;i>e>>m;if(!ListInsert_Sq(&L,e,m))cout<<"插入失败";ListTraverse(&L);}cout<<"输入要删除的元素个数:";cin>>n;for(i=0;i11、”个元素所在的位置:";cin>>m;if(!ListDelete_Sq(&L,m))cout<<"删除失败";ListTraverse(&L);}return0;}实训结果:
3、for(i=0;i>e;L->elem[i]=e;}L->length=length;L->listsize=MAXSIZE;returnOK;}voidListTraverse(SqList*L){//显示顺序表inti;cout<<"当前表为:";for(i=0;ilength;i++)cout<elem[i]<<”“;cout<4、5、6、m>L->length+1)returnERROR;if(L->length>L->listsize){ElemType*newbase;newbase=newElemType[L->listsize+INCREMENT];if(!newbase)returnERROR;L->elem=newbase;L->listsize+=INCREMENT;}ElemType*p,*q;q=&(L->elem[m-1]);for(p=&(L->elem[L->length-1]);p>=q;p--)*(p+1)=7、*p;*q=e;L->length++;returnOK;}intListDelete_Sq(SqList*L,intm){//在顺序表中删除元素if(m<18、9、m>L->length)returnERROR;ElemType*p;p=&(L->elem[m-1]);for(;mlength;m++)L->elem[m-1]=L->elem[m];L->length--;returnOK;}intmain(){//主函数inti,n,m;if(InitList_Sq(&L)==ERROR){cout10、<<"创建失败";returnERROR;}ListTraverse(&L);cout<<"输入要插入元素的个数:";cin>>n;cout<<"输入要插入的元素及插入的位置,以空格隔开:";for(i=0;i>e>>m;if(!ListInsert_Sq(&L,e,m))cout<<"插入失败";ListTraverse(&L);}cout<<"输入要删除的元素个数:";cin>>n;for(i=0;i11、”个元素所在的位置:";cin>>m;if(!ListDelete_Sq(&L,m))cout<<"删除失败";ListTraverse(&L);}return0;}实训结果:
4、
5、
6、m>L->length+1)returnERROR;if(L->length>L->listsize){ElemType*newbase;newbase=newElemType[L->listsize+INCREMENT];if(!newbase)returnERROR;L->elem=newbase;L->listsize+=INCREMENT;}ElemType*p,*q;q=&(L->elem[m-1]);for(p=&(L->elem[L->length-1]);p>=q;p--)*(p+1)=
7、*p;*q=e;L->length++;returnOK;}intListDelete_Sq(SqList*L,intm){//在顺序表中删除元素if(m<1
8、
9、m>L->length)returnERROR;ElemType*p;p=&(L->elem[m-1]);for(;mlength;m++)L->elem[m-1]=L->elem[m];L->length--;returnOK;}intmain(){//主函数inti,n,m;if(InitList_Sq(&L)==ERROR){cout
10、<<"创建失败";returnERROR;}ListTraverse(&L);cout<<"输入要插入元素的个数:";cin>>n;cout<<"输入要插入的元素及插入的位置,以空格隔开:";for(i=0;i>e>>m;if(!ListInsert_Sq(&L,e,m))cout<<"插入失败";ListTraverse(&L);}cout<<"输入要删除的元素个数:";cin>>n;for(i=0;i11、”个元素所在的位置:";cin>>m;if(!ListDelete_Sq(&L,m))cout<<"删除失败";ListTraverse(&L);}return0;}实训结果:
11、”个元素所在的位置:";cin>>m;if(!ListDelete_Sq(&L,m))cout<<"删除失败";ListTraverse(&L);}return0;}实训结果:
此文档下载收益归作者所有