您好,欢迎来到筏尚旅游网。
搜索
您的当前位置:首页线性表实验报告

线性表实验报告

来源:筏尚旅游网


数 据 结 构

实 验 报 告

实验名称:___线性表_________________________

学生姓名:张鑫磊____________________________

班 级: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\"<else

{

if(length==listsize) //空间不足,增加分配

{

p=new int[listsize+LISTINCREMENT];

if(!p) cout<<\"ERROR\"<else //分配成功,复制顺序表

{

for(t=0;t*(p+t)=*(L+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\"<else

{

e=*(L+i-1);

while(i{

*(L+i-1)=*(L+i);

i++;

}

length--; }

}

void SqList::ListVisit() //删除成功表长减1

//遍历

第8页

{

int i;

for(i=0;icout<<\" \"<<*(L+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=\"<return 0;

}

<七>实验结果与分析:顺序表操作:先构造有四个数据的顺序表,在第四个位置插入9.再度趋并删除第三个元素.

<八>实验总结:

通过这次实验,掌握了线形表的定义,顺序存储及链式存储的方法及基本操作。学会了利用线性表的顺序存储结构完成一些数据的管理,实现数据通信元素的增加,删除等运算

<九>实验心得:第一次数据结构的实验,编程过程中我遇到了一些棘手的问题,但是经过请教老师和同学后,较为轻松的解决了问题。

第10页

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- efsc.cn 版权所有

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务