实验一顺序表的实现实验目的:熟练掌握顺序表的基本操作(插入、删除、查找等)实验内容:顺序表中的基本操作的实现(初始化、插入、删除、求表长、按值查找、按位置查找)实验要求:以顺序表的动态分配存储结构来实现;所有基本操作均应该以函数的形式表示;要有运行结果并考虑到顺序表中所有情况。一、实验算法描述:1、顺序表的声明和创建typedefstruct{int*data;//int*型元素intlength;//顺序表的实际长度intlistsize;//顺序表的最大长度}sqlist;voidcreatsqlist(sqlist&list){list.data=(int*)malloc(sizeof(int)*maxsize);//开辟一个名为l的顺序表if(!list.data)//判断顺序表是否存在exit(1);list.length=0;list.listsize=maxsize;}2、初始化函数initsqlist(list)voidinitsqlist(sqlist&list)//初始化操作{int*p;intn;cout请输入顺序表元素数(1-50):endl;//让用户输入顺序表元素个数cinn;cout您申请的顺序表的长度是---nendl;p=list.data;//p指向头指针cout请依次输入无重复数字的有序顺序表(相邻数据用空格隔开,回车键完成输入):endl;for(inti=0;in;i++)//逐个赋值{cin*p;p++;list.length++;}cout您输入的递增顺序表为:endl;//打印出初始化的顺序表for(i=0;in;i++)coutlist.data[i]\t;coutendl;}3、输出函数put(list)voidput(sqlist&list)//输出函数{inti;for(i=0;ilist.length;i++)coutlist.data[i]\t;coutendl;}4、定位函数locateElem(list)voidlocateElem(sqlist&list){inti,j=0,b;cout请输如要查找的字符:\n;cinb;for(i=0;ilist.length;i++)if(list.data[i]==b){j=i+1;break;}if(j)cout该数字的位置是:jendl;elsecout很抱歉,表中没有这个数字,请重试!endl;}5、插入函数insert(list)voidinsert(sqlist&list)//插入函数{inti;cout您想在第几位插入数字:\n;cini;intx;cout请输入要插入的数字:\n;cinx;intj;if(i0||ilist.length){cout位置错误endl;put(list);}else{for(j=list.length;j=i;j--)list.data[j]=list.data[j-1];list.data[j]=x;list.length++;}cout插入操作完成后的顺序表:endl;put(list);}6、删除函数delete1(list)和delete2(list)voiddelete1(sqlist&list)//删除第i个位置的数字的函数{inti,b;cout请输入你想要删除数据的位置:endl;cini;if(i0||ilist.length){cout输入错误!endl;return;}else{b=list.data[i-1];for(i=i-1;ilist.length-1;i++)list.data[i]=list.data[i+1];--list.length;cout需要删除的元素是:bendl;cout删除操作完成后的顺序表是:endl;put(list);}}voiddelete2(sqlist&list)//删除指定数字的函数{intb;cout输入您想删除的数字:endl;cinb;inti,j=0;for(i=0;ilist.length;i++){if(list.data[i]==b){j=i+1;break;}}if(j!=0){for(;ilist.length-2;i++)list.data[i]=list.data[i+1];--list.length;cout该位置是第i位endl;cout删除操作完成后的顺序表是:endl;put(list);}elsecout很遗憾,表中没有找到此数字,删除不成功,请重试!endl;}二、实验程序描述:主函数如下:intmain(){intflag;sqlistl;creatsqlist(l);initsqlist(l);coutendl**************************************************************************endl;cout请输入要进行的操作序号:\n;cout1.插入字符endl2.查找数字endl3.删除第i位数字endl4.删除指定数字endl0.退出endlendl;cinflag;do{switch(flag){case1:insert(l);break;case2:locateElem(l);break;case3:delete1(l);break;case4:delete2(l);break;default:cout请重新输入||代码错误endl;}cout**************************************************************************endl;cout请输入要进行的操作序号:\n;cout1.插入字符endl2.查找数字endl3.删除第i位数字endl4.删除指定数字endl0.退出endlendl;cinflag;}while(flag!=0);return0;}三、实验结果(输入和输出):1、输入界面:2、插入操作:3、查找操作:4、删除操作: