- 1、本文档共16页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
鏈表实验报告1
实验 一 线性表的基本操作实现及其应用
一、实验目的
1、熟练掌握线性表的基本操作在两种存储结构上的实现。
2、会用线性链表解决简单的实际问题。
二、实验内容
题目一 链表基本操作
该程序的功能是实现单链表的定义和操作。该程序包括单链表结构类型以及对单链表操作的具体的函数定义和主函数。其中,程序中的单链表(带头结点)结点为结构类型,结点值为整型。单链表操作的选择以菜单形式出现,如下所示:
please input the operation:
1.初始化 2.清空 3.求链表长度 4.检查链表是否为空
5.检查链表是否为满 6.遍历链表(设为输出元素)7.从链表中查找元素
8.从链表中查找与给定元素值相同的元素在表中的位置
9.向链表中插入元素 10. 从链表中删除元素
其他键退出。。。。。
题目二 约瑟夫环问题
设编号为1,2,3,……,n的n(n0)个人按顺时针方向围坐一圈,每个人持有一个正整数密码。开始时任选一个正整数做为报数上限m,从第一个人开始顺时针方向自1起顺序报数,报到m时停止报数,报m的人出列,将他的密码作为新的m值,从他的下一个人开始重新从1报数。如此下去,直到所有人全部出列为止。令n最大值取30。要求设计一个程序模拟此过程,求出出列编号序列。
struct node //结点结构
{
int number; /* 人的序号 */
int cipher; /* 密码 */
struct node *next; /* 指向下一个节点的指针 */
};
三.实验步骤
题目一 链表基本操作
(一)、数据结构与核心算法的设计描述
1、单链表的结点类型定义
/* 定义DataType为int类型 */
typedef int DataType;
/* 单链表的结点类型 */
typedef struct LNode
{ DataType data;
struct LNode *next;
}LNode,*LinkedList;
2、初始化单链表
LinkedList LinkedListInit()
{ //函数功能:对链表进行初始化 参数:链表(linklist L) 成功初始化返回1,否则返回0 }
3、清空单链表
void LinkedListClear(LinkedList L)
{//函数功能:把链表清空 参数:链表(linklist L) 成功清空链表返回1 }
4、 检查单链表是否为空
int LinkedListEmpty(LinkedList L)
{ //函数功能:判断链表是否为空 参数:链表(linklist L) 链表为空时返回0,不为空返回1 }
5、 遍历单链表
void LinkedListTraverse(LinkedList L)
{ //函数功能:遍历链表,输出每个节点的elem值 参数:链表(linklist L)
通过循环逐个输出节点的elem值 }
6、 求单链表的长度
int LinkedListLength(LinkedList L)
{ //函数功能:返回链表的长度 参数:链表(linklist L) 函数返回链表的长度 }
7、 从单链表表中查找元素
LinkedList LinkedListGet(LinkedList L,int i)
{ //函数功能: 从链表中查找有无给定元素 参数;链表(linklist L),给定元素(int i)
如果链表中有给定元素(i)则返回1,否则返回0 }
8、从单链表表中查找与给定元素值相同的元素在链表中的位置
LinkedList LinkedListLocate(LinkedList L, DataType x)
{//函数功能: 从链表中查找给定元素的位置 参数;链表(linklist L),给定元素(int i)
如果链表中有给定元素i则返回元素的位置, 没有则返回0 }
9、 向单链表中插入元素
void LinkedListInsert(LinkedList L,int i,DataType x)
{ // L 为带头结点的单链表的头指针,本算法
// 在链表中第i 个结点之前插入新的元素 x
}
10、 从单链表中删除元素
void LinkedListDel(LinkedList L,DataType x)
{ 删除以 L 为头指针的单链表中第 i 个结点 }
(二)、函数调用及主函数设计
zhujiemian();
cina;
do
{
switch(a)
{
case 1:
您可能关注的文档
最近下载
- 2025湖北武汉市汉阳区招聘社区干事40人备考试题及答案解析.docx VIP
- 新能源汽车试题库(附答案).docx VIP
- 《碳纤维片材加固混凝土结构技术规程》(2022年版).pdf VIP
- 2023年地面及屋面分布式光伏发电工程HSE作业指导书(最终版).docx VIP
- 常用塑料特性及塑料成型工艺.pdf VIP
- 甲烷安全技术说明书MSDS.pdf VIP
- 统编版语文四年级上册第五单元素养评估(含答案).docx VIP
- 入党志愿书电子版模板(空白) .doc VIP
- 五年级下册生字练字帖硬笔书法.pdf VIP
- 《国有企业管理人员处分条例》考试题库200题(含答案).docx VIP
文档评论(0)