- 1、本文档共24页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
201560140140--袁若飞--实验1:线性表的基本操作及其应用概要1
数据结构
实验1:线性表的基本操作及其应用
班级:RB软工移151
学号:201560140140
姓名:袁若飞实验一 线性表
一、实验目的
1、帮助读者复习C++语言程序设计中的知识。
2、熟悉线性表的逻辑结构。
3、熟悉线性表的基本运算在两种存储结构上的实现,其中以熟悉链表的操作为侧重点。①答:线性表的基本特性是:对线性表中某个元素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的元素,若存在该元素,则返回其地址;否则,返回一个能指示其不存在的地址值或标记。
(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、熟练掌握线性表的插入、删除等操作。
四、实验内容
题目一:顺序表的基本操作
[问题描述]
实现顺序表的建立、求长度,取元素、修改元素、插入、删除等基本操作。
[基本要求]
顺序表 (2)输出顺序表中的数据元素;顺序表 [测试数据]
由学生任意指定。
2)实现取元素功能
3)实现查找功能
4)实现插入功能
[源代码]#include iostream.h
#include malloc.h
#define maxlen 100 //设元素个数最大为100
typedef struct //声明一个结构体来存放顺序表
{ int data[maxlen]; //定义存储表中元素的数组
int listlen; //定义表长度分量
}seqlist;
void get_element(seqlist *L,int I,int *x); //按序号求元素运算的子函数
int List_locate(seqlist L,int I,int x); //声明按值查询元素的子函数
bool List_insert(seqlist *L,int I,int x); //声明插入元素的子函数
bool List_delete(seqlist *L,int I); //声明删除元素的子函数
void main()
{ seqlist *L; //表结构变量的定义
L=(seqlist *)malloc(sizeof(seqlist)); //为表分配空间
int i; //定义整型变量
for(i=1;i=20;i++) //赋值给表中的元素
{ L-data[i-1]=i; //填入删除内容
}
L-listlen=20; //定义表的长度
cout删除前的顺序表:\n;
for(i=1;i=L-listlen;i++) //输出表中元素
{ coutL-data[i-1] ;
}
cout\n输入要删除的纪录号:;
cini; //用户输入删除的记录
if(List_delete(L,i)) //用删除元素的子函数
{ cout\n删除成功!删除后的顺序表为:\n;
for(i=1;i=L-listlen;i++)
文档评论(0)