您好,欢迎访问三七文档
班级:计算机11-1学号:姓名:成绩:_________实验一顺序表操作验证一、实验目的⑴掌握线性表的顺序存储结构;⑵验证顺序表及其基本操作的实现;⑶掌握数据结构及算法的程序实现的基本方法。二、实验内容⑴建立含有若干个元素的顺序表;⑵对已建立的顺序表实现插入、删除、查找等基本操作。三、设计与编码#includeiostreamusingnamespacestd;constintMaxSize=100;templateclassT//定义模板类SeqListclassSeqList{public:SeqList(){length=0;}//无参构造函数SeqList(Ta[],intn);//有参构造函数~SeqList(){}voidInsert(inti,Tx);//在线性表中第i个位置插入值为x的元素TDelete(inti);//删除线性表的第i个元素intLocate(Tx);//按值查找,求线性表中值为x的元素序号voidPrintList();//遍历线性表,按序号依次输出各元素private:Tdata[MaxSize];//存放数据元素的数组intlength;//线性表的长度};//有参构造函数templateclassTSeqListT::SeqList(Ta[],intn){inti;if(nMaxSize)throw参数非法;for(i=0;in;i++)data[i]=a[i];length=n;}//在线性表中第i个位置插入值为x的元素templateclassTvoidSeqListT::Insert(inti,Tx){intj;if(length=MaxSize)throw上溢;if(i1||ilength+1)throw位置异常;for(j=length;j=i;j--)data[j]=data[j-1];//注意第j个元素存在数组下标为j-1处data[i-1]=x;length++;}//删除线性表的第i个元素templateclassTTSeqListT::Delete(inti){intx,j;if(length==0)throw下溢;if(i1||ilength)throw位置异常;x=data[i-1];for(j=i;jlength;j++)data[j-1]=data[j];//注意此处j已经是元素所在的数组下标length--;returnx;}//按值查找,求线性表中值为x的元素序号templateclassTintSeqListT::Locate(Tx){inti;for(i=0;ilength;i++)if(data[i]==x)returni+1;//下标为i的元素等于x,返回其序号i+1return0;//退出循环,说明查找失败}//遍历线性表,按序号依次输出各元素templateclassTvoidSeqListT::PrintList(){inti;cout------------------------------------;coutendl;cout:;for(i=0;ilength;i++)coutdata[i]、;coutendl;cout-------------------------------------;coutendl;}//菜单voidmenu(){cout顺序表的实现endl;cout*********************endl;cout1.插入:endl;cout2.删除:endl;cout3.查找:endl;cout4.显示:endl;cout5.退出:endl;cout*********************endl;}//主程序intmain(){inta[10]={33,34,45,67,87,65,21,23,56,64};inti,j,x,loc;SeqListints1(a,10);intflag=1;menu();while(flag){cout请输入你需要的选项:;cinj;switch(j){case1:{cout显示要插入的位序及数值:endl;cinix;s1.Insert(i,x);break;}case2:{cout输入元素所在位置:;cini;s1.Delete(i);cout删除数据后表变为:endl;s1.PrintList();break;}case3:{cout请输入你要查找的值:;cinx;loc=s1.Locate(x);cout所查数据所在:loc位endl;break;}case4:{s1.PrintList();break;}case5:{flag=0;break;}default:{cout错误!!!endl;break;break;}}}return0;}四、运行与调试a)在调试程序的过程中遇到什么问题,是如何解决的?b)设计了哪些设计数据?测试结果是什么?c)程序运行的结果如何?五、实验小结顺序线性表是用一段地址连续的存储单元依次存储线性表的数据元素,通常用一组数组来实现顺序表,是一种相对简单易懂的线性数据结构,了解线性表中数据被插入删除位置后的移动方式及最后的操作,程序基本就完成了,编写比较容易且寻值比链式快捷,但若是线性表中数据过多,插入删除操作后的数据移动将耗大量的时间,而且空间利用率较差,这是顺序表的缺陷
本文标题:顺序表验证实验作业
链接地址:https://www.777doc.com/doc-6011980 .html