数据结构线性表试验报告.docx
- 文档编号:12727663
- 上传时间:2023-04-21
- 格式:DOCX
- 页数:15
- 大小:363KB
数据结构线性表试验报告.docx
《数据结构线性表试验报告.docx》由会员分享,可在线阅读,更多相关《数据结构线性表试验报告.docx(15页珍藏版)》请在冰豆网上搜索。
数据结构线性表试验报告
线性表上机实习
1、实验目的
(1)熟悉将算法转换为程序代码的过程。
(2)了解顺序表的逻辑结构特性,熟练掌握顺序表存储结构的C语言描述方法。
(3)熟练掌握顺序表的基本运算:
查找、插入、删除等,掌握顺序表的随机存取特性。
(4)了解线性表的链式存储结构,熟练掌握线性表的链式存储结构的C语言描述方法。
(5)熟练掌握线性链表(单链表)的基本运算:
查找、插入、删除等,能在实际应用中灵活选择适当的链表结构。
2、实验要求
(1)熟悉顺序表的插入、删除和查找。
(2)熟悉单链表的插入、删除和查找。
3、实验内容:
1 顺序表
(1)抽象数据类型定义
typedefstruct{
TypeDatadata[maxsize];//容量为maxsize的静态顺手表
intn;//顺序表中的实际元素个数
}SeqList;//静态顺序表的定义
在本次实验中,首先建立一个空的静态顺序表,然后键盘输入数据存入表中,然后进入菜单选择界面,通过不同的数字输入,实现对顺序表,删除,插入,查找,显示等操作。
(2)存储结构定义及算法思想
在顺序表结构体的定义中,typedefintTypeData为整型,存储结构如下:
for(n=0;n cout<<"请输入线性表数据"< cin>>L.data[n];//顺序将数据存入顺序表 }//其他存储与此类似,都是直接赋值与数组的某一位 插入版块子函数: voidinsert(SeqList&L)//插入数据 { inta,b,c,k; cout<<"请输入插入的数及其插入的位置"< cin>>a>>b; if(b<=0||b>(L.n+1)){cout<<"不能在该位置插入"< k=L.data[b-1];L.data[b-1]=a;c=L.n;L.n=L.n+1; while(c>b){ L.data[c]=L.data[c-1];c--;//通过循环,实现插入位置后的数据挨个往后移动一位 } L.data[b]=k; } 顺序表的插入与删除操作类似,在插入与删除后,都要循环调整后面数组的每一位元素,同时记录数据元素的长度的标示符也要跟着改变。 显示操作是通过循环实现表中第一个元素到最后一个元素的输出,查找操作是直接取数组中的查找位输出。 (3) 实验结果与分析 2 单链表 (1)抽象数据类型定义 typedefstructnode{ DataTypedata;//链表的数据类型 structnode*link;//链表的结点指针 }linknode,*linklist;//定义了结构体linklode和结构体指针linklist 在本次实验中,首先程序自己建立一个空的头结点,通过菜单的功能选择“添加链表数据”可自由添加链表的节点数及元素值。 在菜单选择中,有“添加链数据”,“插入链表数据”,“删除链表数据”,“查找链表数据”和“显示链表数据”功能,选择不能的功能选择就能实现不同的操作。 其中“添加链表数据”可反复批量输入链表数据。 (2)存储结构定义及算法思想 在单链表中,typedefintDataType;DataTypedata;定义链表存储数据位整型。 存储结构如下: while(p->link! =NULL){ p=p->link;k++;//首先找到单链表的最后结点(如果是只有头结点 }的单链表则直接跳过),以便后面接着输入数据
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 线性 试验报告