数据结构敢死队问题

数据结构敢死队问题

ID:8459980

大小:117.50 KB

页数:15页

时间:2018-03-28

数据结构敢死队问题_第1页
数据结构敢死队问题_第2页
数据结构敢死队问题_第3页
数据结构敢死队问题_第4页
数据结构敢死队问题_第5页
资源描述:

《数据结构敢死队问题》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、15华北科技学院课程设计说明书(数据结构课程设计)班级:信管B08-1姓名:陈秋苗学号:8设计题目:敢死队问题设计时间:__2010-9-6_____至___2010-9-17____指导教师:______兰芸__________________评语:________________________________________________________________________________________________________________________________________

2、____________________________________________________________评阅成绩:____评阅教师:_____1515《数据结构》课程设计实验报告开课实验室:基础实验室一2010年9月16日实验题目敢死队问题1.实验题目敢死队问题2.实验设备及环境PC兼容机、Windows操作系统、VB软件等。3.功能模块简介和系统结构图系统结构图本程序有四个功能模块,包括三个解决敢死队问题方案的模块和一个退出系统模块。三个解决方案分别采用了循环聊表储存结构、线性表储存结构、循环队列储存

3、结构。功能模块如下图所示。敢死队问题循环单链表储存结构线性表储存结构循环队列储存结构退出功能模块具体简介如下:(1).循环单链表以单循环链表为存储结构,包含三个模块:1.主程序模块包含敢死队人数的输入,死亡数字的输入,函数的调用,结果的输出。2.构造链表并初始化构造链表,给每个结点赋值,给队员编号。3.删除当报数到死亡数字时队员出列去执行任务,删除该节点。1515开始声明类型定义变量并初始化初始化单链表循环模块输入敢死队员总数剩下的队员数>1?队员报数报数值=死亡数?队员出列输出结果(2).线性表储存结构功能设计本程序

4、其实质是约瑟夫环问题,本次实验用了线性表数据结构,并运用模块化的程序设计思想,算法的实现是这样的:定义类类型1.定义变量并初始化2.线性表初始化3.当队员数小于等于1时,输出结果1515算法流程图开始声明数据类型定义变量并初始化初始化线性表输入敢死队员总数敢死队员人数>线性表长度队员报数报数值=5?队员出列剩下的队员数>1?输出增加存储分配循环队列储存结构解决功能设计本程序其实质是约瑟夫环问题,本次实验用了循环队列数据结构,并运用模块化的程序设计思想,算法的实现是这样的:这个方法是用队列循环来做的,实现的方法是这样的:

5、首先从第一号开始报数,循环到指定的偏移位置删除结点,直至剩下一个结点。然后再比较一下它的号码是不是等于1,如果等于则输出开始计数位置,如果不等,继续循环查找,直到找出符合条件的计数起始位置,输出结果。算法流程图1515开始声明数据类型定义变量并初始化初始化循环队列输入敢死队员总数队列满?队员报数报数值=5?队员出列即清零剩下的队员数>1?输出增加存储分配编号=1?给队员编号入队列1.系统的主要界面设计及运行说明:进入用户主界面,选者实现结果的方法1515以10个队员,死亡数字为5来运行,结果如下选择第2项功能,运用线性

6、表储存结构1515选择第3项功能,运用循环队列来实现结果5.程序的主要代码:#include#include#include#include//-------------------循环单链表----------------------------------------------typedefstructnode{intdata;structnode*next;1515}LNode;/*定义结点类型*/LNode*CREAT(intn)/

7、*创建循环链表*/{LNode*s,*q,*T;inti;if(n!=0){T=q=(LNode*)malloc(sizeof(LNode));q->data=1;/*生成第一个结点并使其data值为1*/for(i=2;i<=n;i++){s=(LNode*)malloc(sizeof(LNode));q->next=s;q->next->data=i;/*赋值*/q=q->next;}q->next=T;}returnT;}DELETE(LNode*T,intm)/*链表的删除*/{LNode*a;inti;whi

8、le(T->next!=T){for(i=1;inext;a=T->next;T->next=a->next;free(a);T=T->next;}printf("");return(T->data);}//------------------------------

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。