实验一线性表的基本操作实现及其应用.pdf
《实验一线性表的基本操作实现及其应用.pdf》由会员分享,可在线阅读,更多相关《实验一线性表的基本操作实现及其应用.pdf(16页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、实验 一线性表的基本操作实现及其应用一、实验目的1、熟练掌握线性表的基本操作在两种存储结构上的实现。2、会用线性链表解决简单的实际问题。二、实验内容题目一、该程序的功能是实现单链表的定义和操作。该程序包括单链表结构类型以及对单链表操作的具体的函数定义和主函数。其中,程序中的单链表(带头结点)结点为结构类型,结点值为整型。单链表操作的选择以菜单形式出现,如下所示:please input the operation:1.初始化 2.清空 3.求链表长度 4.检查链表是否为空 5.检查链表是否为满 6.遍历链表(设为输出元素)7.从链表中查找元素8.从链表中查找与给定元素值相同的元素在表中的位置9
2、.向链表中插入元素 10.从链表中删除元素其他键退出。其中黑体部分必做题目二、约瑟夫环问题:设编号为 1,2,3,n 的 n(n0)个人按顺时针方向围坐一圈,每个人持有一个正整数密码。开始时任选一个正整数做为报数上限 m,从第一个人开始顺时针方向自 1 起顺序报数,报到 m 时停止报数,报 m 的人出列,将他的密码作为新的 m 值,从他的下一个人开始重新从 1 报数。如此下去,直到所有人全部出列为止。令 n 最大值取 30。要求设计一个程序模拟此过程,求出出列编号序列。struct node函数流程图函数流程图Main 函数(一)程序调试及运行结果分析初始化链表调用菜单函数等待选择,等输入输
3、入 非1进入选择界面后,先选择 7,进行插入:2.选择4,进行遍历,结果为:3.选择 2,得出当前链表长度.5.选择分别选择5、6进行测试.4.选择3,得出当前链表为.6.选择 8,分别按位置和元素值删除.7.选择 9,或非 1-8 的字符,程序结束.(二)实验总结通过这次实验,我对线性链表有了更深的理解,深入明白了线性存储结构与链式存储结构在内存存储的不同特点,同时我还学会了用这些知识实际解决一些问题,能够更加熟练地将算法转化为实际程序。同时,在写程序和调试程序的过程中,学会了一些书写技巧和调试技巧,这对于自己能在短时间高效的写出正确地程序有很大作用。四、主要算法流程图及程序清单1.1.主要
4、算法流程图:主要算法流程图:(1)从单链表表中查找与给定元素值相同的元素在链表中的位置调用函数,传入参数 L,xp=L-nextp=p-nexttruep&!(p-data=xfals返回 p建立新结点 s,令s-data=x;i=1falsp=p-nextj=1truejnext=s;L-next=s;Falsq=p-next;p-next=s;返回对应值s-next=p;2.2.程序清单:程序清单:#include#includeusing namespace std;using namespace std;#include#include#include#include/*/*预处理命令
5、预处理命令*/*/#define OK 1;#define OK 1;#define ERROR 0;#define ERROR 0;#define OVERFLOW-1;#define OVERFLOW-1;/*/*单链表的结点类型单链表的结点类型*/*/typedef struct LNodetypedef struct LNode int data;int data;struct LNode*next;struct LNode*next;LNode,*LinkedList;LNode,*LinkedList;/*/*初始化单链表初始化单链表*/*/LinkedList LinkedLis
6、tInit()LinkedList LinkedListInit()空空endl;endl;coutttt2.coutttt2.求链表长度求链表长度endl;endl;coutttt3.coutttt3.检查链表是否为空检查链表是否为空endl;endl;coutttt4.coutttt4.遍历链表遍历链表endl;endl;coutttt5.coutttt5.从链表中查找元素从链表中查找元素 endl;endl;coutttt6.coutttt6.从链表中查找与给定元素值相同的元素在表中的从链表中查找与给定元素值相同的元素在表中的位置位置endl;endl;/*/*主函数主函数*/*/int
7、 main()int main()coutttt7.coutttt7.向链表中插入元素向链表中插入元素endl;endl;coutttt8.coutttt8.从链表中删除元素从链表中删除元素endl;endl;coutttt9.coutttt9.退出退出endl;endl;链表长度链表长度case 2:case 2:couttttcoutttt 链表长度为:链表长度为:LinkedListLength(L)endl;LinkedListLength(L)endl;getch();getch();break;break;查链表是否为空查链表是否为空case 3:case 3:if(!Linked
8、ListEmpty(L)if(!LinkedListEmpty(L)elseelse getch();getch();break;break;历链表历链表couttttcoutttt 链表为空!链表为空!endl;endl;couttttcoutttt 链表不为空!链表不为空!endl;endl;case 4:case 4:LinkedListTraverse(L);LinkedListTraverse(L);getch();getch();break;break;链表中查找元素链表中查找元素case 5:case 5:couttttcoutj;cinj;if(LinkedListGet(L,
9、j)if(LinkedListGet(L,j)couttttcoutttt位位置置i i的的元元素素值值为为:dataendl;dataendl;elseelse getch();getch();break;break;链表中查找与给定元素值相同的元素在表中的位置链表中查找与给定元素值相同的元素在表中的位置coutttticoutttti 大于链表长度!大于链表长度!endl;endl;case 6:case 6:couttttcoutb;cinb;if(LinkedListGet1(L,b)if(LinkedListGet1(L,b)couttttcoutttt要要 查查 找找 的的 元元
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验 线性 基本 操作 实现 及其 应用
限制150内