没有合适的资源?快使用搜索试试~ 我知道了~
学位论文-—数据结构约瑟夫环.doc
1 下载量 189 浏览量
2023-07-01
16:06:05
上传
评论
收藏 97KB DOC 举报
温馨提示
试读
15页
学位论文-—数据结构约瑟夫环.doc
资源推荐
资源详情
资源评论
数据结构 课程设计报告
设计题目:
班 级:
组 长: 姓名(学号)
组 员:姓名(学号)…
指导教师:
完成日期:
成绩:
目 录
1 需求分析 ..........................................................3
1.1 功能分析 ..............................................................3
1.2 设计平台 ..............................................................3
2 概要设计 ..........................................................3
2.1 类 LinkList............................................................3
2.2 类 Joseph..............................................................4
2.3 类异常处理 ............................................................4
3 详细设计和实现 ....................................................4
3.1 创建结点 Node..........................................................4
3.2 创建双向循环链表 ......................................................5
3.3 从链表中删除结点 ......................................................6
4 调试与操作说明 ...................................................10
4.1 调试情况 .............................................................10
4.2 操作说明 .............................................................10
5 设计总结 .........................................................11
参 考 文 献........................................................12
附录...............................................................12
1 需求分析
1.1 功能分析
本次选做的课程设计是改进约瑟夫(Joseph)环问题。约瑟夫环问题是一个古
老的数学问题,本次课题要求用程序语言的方式解决数学问题。此问题仅使用单
循环链表就可以解决此问题。而改进的约瑟夫问题通过运用双向循环链表,同样
也能方便地解决。
在建立双向循环链表时,因为约瑟夫环的大小由输入决定。为方便操作,我
们将每个结点的数据域的值定为生成结点时的顺序号和每个人持有的密码。进行
操作时,用一个指针 current 指向当前的结点,指针 front 始终指向头结点。然后
建立双向循环链表,因为每个人的密码是通过 rand()函数随机生成的,所以指定
第一个人的顺序号,找到结点,不断地从链表中删除链结点,直到链表剩下最后
一个结点,通过一系列的循环就可以解决改进约瑟夫环问题。
1、 本演示程序中,利用单向循环链表存储结构模拟约瑟夫问题的进行。
程序运行后,首先要求用户指定初始报数上限值,然后读取个人的密码。可设 n
≤30。此题所用的循环链表中不需要“头结点”,因此在程序设计中应注意空表
和非空表的界限。
2、 演示程序以用户和计算机的对话方式执行,即在计算机终端上显示
“提示信息”之后,由用户在键盘上输入演示程序中规定的运算命令:相应的输
入数据和运算结果显示在其后。
3、 程序执行的命令包括:
1) 构造约瑟夫环;2)执行约瑟夫环,并输出出列人的序号以及相应的
密码;
3)结束。
4、测试数据
1)m 的初始值为 20;
2)n=7,7 个人的密码依次为:3、1、7、2、4、8、4。
3)首先 m 值为 6,正确的出列顺序应为 6、1、4、7、2、3、5。
1.2 设计平台
剩余14页未读,继续阅读
资源评论
matlab大师
- 粉丝: 2359
- 资源: 9万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功