201560140140--袁若飞--实验1:线性表的基本操作及其应用

201560140140--袁若飞--实验1:线性表的基本操作及其应用

ID:43437939

大小:220.01 KB

页数:24页

时间:2019-10-01

201560140140--袁若飞--实验1:线性表的基本操作及其应用_第1页
201560140140--袁若飞--实验1:线性表的基本操作及其应用_第2页
201560140140--袁若飞--实验1:线性表的基本操作及其应用_第3页
201560140140--袁若飞--实验1:线性表的基本操作及其应用_第4页
201560140140--袁若飞--实验1:线性表的基本操作及其应用_第5页
资源描述:

《201560140140--袁若飞--实验1:线性表的基本操作及其应用》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、数据结构实验1:线性表的基本操作及其应用班级:RB软工移151学号:201560140140姓名:袁若飞第1页学号:201560140140姓名:袁若飞实验一线性表一、实验目的1、帮助读者复习C++语言程序设计中的知识。2、熟悉线性表的逻辑结构。3、熟悉线性表的基本运算在两种存储结构上的实现,其中以熟悉链表的操作为侧重点。二、实验内容本次实验提供4个题目,每个题目都标有难度系数,*越多难度越大,题目一、二是必做题。题目三、题目四选作。三、实验准备知识1、请简述线性表的基本特性和线性表的几种基本操作的机制①答:线性表的基本特性是:对

2、线性表中某个元素ai来说,称其前面的元素ai-1为ai的直接前驱,称其后前面的元素ai+1为ai的直接后继。显然,线性表中每个元素最多有一个直接前驱和一个直接后继。②答:线性表的几种基本操作的机制有六个:(1)初始化线性表initial_List(L)——建立线性表的初始结构,即建空表。这也是各种结构都可能要用的运算。(2)求表长度List_length(L)——即求表中的元素个数。(3)按序号取元素get_element(L,i)——取出表中序号为i的元素。(4)按值查询List_locate(L,x)——取出指定值为x的元素,

3、若存在该元素,则返回其地址;否则,返回一个能指示其不存在的地址值或标记。(5)插入元素List_insert(L,i,x)——在表L的第i个位置上插入值为x的元素。显然,若表中的元素个数为n,则插入序号i应满足1<=i<=n+1。(6)删除元素List_delete(L,i)——删除表L中序号为i的元素,显然,待删除元素的序号应满足1<=i<=n。2、掌握线性表的逻辑结构。3、掌握线性表的链式存储结构。4、熟练掌握线性表的插入、删除等操作。第24页学号:201560140140姓名:袁若飞四、实验内容题目一:顺序表的基本操作[问题

4、描述]实现顺序表的建立、求长度,取元素、修改元素、插入、删除等基本操作。[基本要求](1)依次从键盘读入数据,建立顺序表;(2)输出顺序表中的数据元素;(3)求顺序表的长度;(4)根据指定条件能够取元素和修改元素;(5)实现在指定位置插入和删除元素的功能。[测试数据]由学生任意指定。运行结果如下图:1)实现删除功能2)实现取元素功能第24页学号:201560140140姓名:袁若飞3)实现查找功能4)实现插入功能[源代码](加注释)#include#include#include

5、oc.h>#definemaxlen100//设元素个数最大为100typedefstruct//声明一个结构体来存放顺序表{intdata[maxlen];//定义存储表中元素的数组intlistlen;//定义表长度分量}seqlist;voidget_element(seqlist*L,intI,int*x);//按序号求元素运算的子函数intList_locate(seqlistL,intI,intx);//声明按值查询元素的子函数boolList_insert(seqlist*L,intI,intx);//声明插入元素的

6、子函数boolList_delete(seqlist*L,intI);//声明删除元素的子函数voidmain(){seqlist*L;//表结构变量的定义L=(seqlist*)malloc(sizeof(seqlist));//为表分配空间inti;//定义整型变量for(i=1;i<=20;i++)//赋值给表中的元素{L->data[i-1]=i;//填入删除内容}L->listlen=20;//定义表的长度cout<<"删除前的顺序表:";第24页学号:201560140140姓名:袁若飞for(i=1;i<=L->

7、listlen;i++)//输出表中元素{cout<data[i-1]<<"";}cout<<"输入要删除的纪录号:";cin>>i;//用户输入删除的记录if(List_delete(L,i))//用删除元素的子函数{cout<<"删除成功!删除后的顺序表为:";for(i=1;i<=L->listlen;i++)//向前批量移动元素{cout<data[i-1]<<"";}}}boolList_delete(seqlist*L,inti)//删除元素的子函数{intj;//定义一个整型变量if(L-

8、>listlen<=0)//空表不能删除元素{cout<<"下溢出错!";returnfalse;//返回false}if(i>L->listlen

9、

10、i<=0)//删除元素不存在{cout<<"删除位置错!";returnfalse;//返回fa

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。