- 36
- 0
- 约2.89千字
- 约 5页
- 2016-11-26 发布于重庆
- 举报
数据结构第一次实验
数据结构实验报告
实验一 线性表实验
班级:__计12-1_ 姓名:依力夏提江·艾买尔_ 学号:_12101020129
实验目的:
熟悉线性表的基本运算在顺序存储结构和链式存储结构上的实现,其中重点掌握线性表的链式表示时各种操作的实现。
问题描述:
约瑟夫(Joseph)问题的一种描述是:编号为1,2,3,…,n的n个人按顺时针方向围坐一圈,每人持有一个密码〈正整数〉,一开始任选一个正整数作为报数上限值m,从第一个人开始按顺时针方向自1开始顺序报数,报到m时停止报数,报m的人出列,将他的密码作为新的m值,从他在顺时针方向上的下一个人开始重新从1报数,如此下去,直至所有人全部出列为止。试设计一个程序求出出列顺序。
需求分析:(包括对问题的理解,解决问题的策略、方法描述)
1.用循环链表实现。
2.单个开辟节点,节点里用data记录密码,用n记录序号。
3.从第一个节点开始输入密码和节点,然后连在一起。
4.最后一个节点的next域指向头第一个节点,形成循环链表。
5.开始报数以后,从第一个节点开始找,找到第m人,这里用L-n,输出起序号,把L-data赋给m。(L=L-next来指向往下找操作)
6.报完数出列以后,把下一个节点的所有信息,赋给当前报数人信息所在的节点上。
7.释放下一个节点当前节点就成了下一个节点。同时人数减一。
系统设计:(包括数据结构定义、抽象出基本操作描述、主程序模块处理过程描述)
/*定义线性节点,用data记录密码,用n记录序号*/
typedef struct LNode{
int data;
int n;
struct LNode *next;
}LNode, *LinkList;
/*创建链表*/
LinkList CreateList_L(LinkList L,int n)
/*删除链表,实现每个人报完数出列后,把接个人密码所在的节点从循环链表中删除*/
void DeleteList_L(LinkList L,int n,int m)
/*函数主体*/
int main()
{
int n,m;//n是人数,m是第一报数上限,也是下一次密码赋值的量
LinkList L=NULL;//L指向链表
scanf(%d%d,m,n);
L=CreateList_L(L,n);
DeleteList_L(L,n,m);
return 0;
}
函数主题,简介易懂!
调试分析:(包括调试过程中对原设计的修改,以及遇到的问题和解决的方法)
因当前报数人,出列是用其L-n(序号),然后这节点数据就不要了,可是想删除这个节点不好办了,因为想删除此节点,要把该节点前一个节点的next域指向该节点的下一个节点,可因为不是双线链表,所以寻找前一个节点就难办了。
我想到办法把下一个节点替代当前节点,然后再删除下一个节点,这样问题就解决了。
如下:
m=L-data;//把这次报数出列人的密码,赋给m,用到下次循环找到下一个出列的人
q=L-next; //用q来记录,该删除的节点,注意:此处删除不是出列人原有数据所在的节点而是它的下一个节点
*L=*(L-next);//把L指针及指向的节点下一个next域的全部信息付给L节点,把原先所有信息覆盖掉
free(q);//释放节点q
n--;//人数减一
测试结果:(输入的测试数据及运行结果、正确性、在线测试情况)
输出正确,完美运行。
基本操作的实现:(对各基本操作实现的描述)
整体过程:
#includestdio.h
#includestdlib.h
//#includeiostream
/*定义线性节点,用data记录密码,用n记录序号*/
typedef struct LNode{
int data;
int n;
struct LNode *next;
}LNode, *LinkList;
/*创建链表*/
LinkList CreateList_L(LinkList L,int n)
{
int i=0;
LinkList p=NULL,head=NULL;//定义两个指针,指向空节点
head=(LinkList)malloc(sizeof(LNode));//给空节点分配存储空间
scanf(%d,head-data);//输入第一个人的密码
head-n=1;//记录第一个人的序号为1
L=head;//L指向第一个节点
for(i=2;i=n;i++)//循环实现,从第二个人到最后一个人的,密码输入与,序号记录
{
p=(LinkList)malloc(sizeof(LNode));//开
您可能关注的文档
- 数学模式和动态策略文档.doc
- 数学模型范文.doc
- 数学物理方法习题答案习题4解答.doc
- 数学物理方法第八章作业答案.doc
- 数学物理方法知识点.doc
- 数学素养生成的教学研究.doc
- 数学语言文献综述.doc
- 数学课堂中如何培养学生有条理地思考问题.doc
- 数据丢失之后如何安全的找回丢失的数据.doc
- 数学高二13.doc
- 广东省广州省实验中学教育集团2025-2026学年八年级上学期期中考试物理试题(解析版).docx
- 广东省广州大学附属中学2025-2026学年八年级上学期奥班期中物理试题(解析版).docx
- 广东省广州市第八十六中学2025-2026学年八年级上学期期中物理试题(含答案).docx
- 广东省广州市第八十九中学2025-2026学年八年级上学期期中考试物理试题(解析版).docx
- 广东省广州市第二中学2025-2026学年八年级上学期期中考试物理试题(含答案).docx
- 广东省广州市第八十六中学2025-2026学年八年级上学期期中物理试题(解析版).docx
- 广东省广州市第八十九中学2025-2026学年八年级上学期期中考试物理试题(含答案).docx
- 广东省广州市第二中学2025-2026学年八年级上学期期中考试物理试题(解析版).docx
- 2026《中国人寿上海分公司营销员培训体系优化研究》18000字.docx
- 《生物探究性实验教学》中小学教师资格模拟试题.docx
最近下载
- 2025年北京中考英语大纲课件.pdf VIP
- 加油站安全管理研究.doc VIP
- (高清版)DB42∕T 1086-2015 《森林土壤有机质的测定 分光光度法》.pdf VIP
- QBNM-PS-0011—2020汽车车身内腔防护蜡标准.pdf VIP
- 广发证券-房地产行业2026年投资策略-星垂平野阔,月涌大江流.pdf VIP
- 2026年春节复工复产安全培训开工第一课全文.ppt
- 2025年烟台汽车工程职业学院单招语文测试模拟试卷优选题库.docx VIP
- 三副实习记录簿附页(精.选).docx VIP
- 2025年信息系统安全专家多方安全计算协议专题试卷及解析.pdf VIP
- 2025年拍卖师拍卖会PPT与多媒体素材播放技术保障专题试卷及解析.pdf VIP
原创力文档

文档评论(0)