1、班级:计算机 11-1 学号: 姓名: 成绩:_实验一 顺序表操作验证一、 实验目的1 掌握线性表的顺序存储结构;2 验证顺序表及其基本操作的实现; 掌握数据结构及算法的程序实现的基本方法。二、 实验内容1 建立含有若干个元素的顺序表;2 对已建立的顺序表实现插入、删除、查找等基本操作。三、 设计与编码#includeusing namespace std;const int MaxSize=100; template /定义模板类 SeqListclass SeqListpublic:SeqList()length=0; /无参构造函数SeqList(T a , int n); /有参构造函
2、数SeqList() void Insert(int i, T x);/在线性表中第 i个位置插入值为 x的元素T Delete(int i); /删除线性表的第 i个元素int Locate(T x ); /按值查找,求线性表中值为 x的元素序号void PrintList( ); /遍历线性表,按序号依次输出各元素private:T dataMaxSize; /存放数据元素的数组int length; /线性表的长度;/有参构造函数template SeqList:SeqList(T a , int n)int i;if (nMaxSize) throw “参数非法“;for (i=0;
3、i void SeqList:Insert(int i, T x)int j;if (length=MaxSize) throw “上溢“;if (ilength+1) throw “位置异常“;for (j=length; j=i; j-)dataj=dataj-1; /注意第 j个元素存在数组下标为 j-1处datai-1=x;length+;/删除线性表的第 i个元素template T SeqList:Delete(int i)int x,j;if (length=0) throw “下溢“;if (ilength) throw “位置异常“;x=datai-1;for (j=i; j
4、 int SeqList:Locate(T x)int i;for (i=0; ivoid SeqList:PrintList()int i;couts1(a,10);int flag=1;menu();while(flag)coutj;switch(j)case 1:coutix;s1.Insert(i,x);break;case 2:couti;s1.Delete(i);coutx;loc=s1.Locate(x);cout“所查数据所在:“loc“位“endl;break;case 4:s1.PrintList();break;case 5:flag=0;break;default:cout“错误!“endl;break;break;return 0;四、 运行与调试a) 在调试程序的过程中遇到什么问题,是如何解决的?b) 设计了哪些设计数据?测试结果是什么?c) 程序运行的结果如何?五、 实验小结顺序线性表是用一段地址连续的存储单元依次存储线性表的数据元素,通常用一组数组来实现顺序表,是一种相对简单易懂的线性数据结构,了解线性表中数据被插入删除位置后的移动方式及最后的操作,程序基本就完成了,编写比较容易且寻值比链式快捷,但若是线性表中数据过多,插入删除操作后的数据移动将耗大量的时间,而且空间利用率较差,这是顺序表的缺陷