数 据 结 构
实 验 报 告
实验名称:___线性表_________________________
学生姓名:张鑫磊____________________________
班 级:2013211107____________________________
班内序号:01____________________________
学 号:2013210182____________________________
日 期:2015.1.6____________________________
第1页
(一)实验目的和要求
实验目的:熟练掌握线性表的基本操作在顺序存储结构上的实现。
实验要求:任选一种高级程序语言编写源程序,并调试通过,测试正确。
(二)实验主要内容
1. 建立n个元素的顺序表SqList,实现顺序表的基本操作;
2. 在SqList的元素i之后插入一个元素,实现顺序表插入的基本操作;
3. 在sqList中删除指定位置i上的元素,实现顺序表删除的操作。
4.
(三)仪器设备
PC机,Windows XP操作平台,Visual C++
(四)实验原理
顺序表操作:定义一个顺序表类,该类包括顺序表的存储空间、存储容量和长度,以及构造、插入、删除、遍历等操作的方法
(五)实验步骤与调试分析:
第2页
顺序表操作:先构造有四个数据的顺序表,在第4个位置插入9,再读取并删除第3个元素。
(六)源程序:
#include using namespace std; const int LIST_INIT_SIZE=10; const int LISTINCREMENT=5; class SqList { int *L; int length; int listsize; bool flag; public: //顺序表初始长度 //顺序表长度增值 //定义存储空间起始地址 //顺序表当前长度 //顺序表当前存储容量 //设立标志值记录操作成败 第3页 SqList(int v1,int v2,int v3,int v4); //构造函数构造并初始化顺序表 void ListInsert(int i,int e); //实现将e插入到顺序表中第i个位置 void ListDelete(int i,int &e); //实现删除顺序表第i个元素 void ListVisit(); //实现顺序表的遍历 }; SqList::SqList(int v1,int v2,int v3,int v4) //构造并初始化顺序表 { L=new int[LIST_INIT_SIZE]; if(!L) //分配失败 { flag=false; cout<<\"ERROR\"< 第4页 else //分配成功,进行初始化 { *L=v1; *(L+1)=v2; *(L+2)=v3; *(L+3)=v4; length=4; listsize=LIST_INIT_SIZE; flag=true; } } void SqList::ListInsert(int i,int e) { 第5页 //插入元素 int *p,*q; int t; if(i<1||i>length+1) cout<<\"ERROR\"< { if(length==listsize) //空间不足,增加分配 { p=new int[listsize+LISTINCREMENT]; if(!p) cout<<\"ERROR\"< { for(t=0;t 第6页 q=L;L=p;p=q; delete q; listsize+=LISTINCREMENT; } } for(t=length;t>=i;t--) *(L+length)=*(L+length-1); *(L+i-1)=e; length++; } } void SqList::ListDelete(int i,int &e) { //插入成功,表长加1 第7页 if(i<1||i>length) cout<<\"ERROR\"< { e=*(L+i-1); while(i *(L+i-1)=*(L+i); i++; } length--; } } void SqList::ListVisit() //删除成功表长减1 //遍历 第8页 { int i; for(i=0;i cout< int main() { int e=0; SqList list(2,3,4,5); list.ListVisit(); list.ListInsert(4,9); list.ListVisit(); 第9页 list.ListDelete(3,e); list.ListVisit(); cout<<\"e=\"< } <七>实验结果与分析:顺序表操作:先构造有四个数据的顺序表,在第四个位置插入9.再度趋并删除第三个元素. <八>实验总结: 通过这次实验,掌握了线形表的定义,顺序存储及链式存储的方法及基本操作。学会了利用线性表的顺序存储结构完成一些数据的管理,实现数据通信元素的增加,删除等运算 <九>实验心得:第一次数据结构的实验,编程过程中我遇到了一些棘手的问题,但是经过请教老师和同学后,较为轻松的解决了问题。 第10页 因篇幅问题不能全部显示,请点此查看更多更全内容