数据结构课程设计报告--约瑟夫环
《数据结构课程设计报告--约瑟夫环》由会员分享,可在线阅读,更多相关《数据结构课程设计报告--约瑟夫环(14页珍藏版)》请在毕设资料网上搜索。
1、 题目一题目一 题目题目:约瑟夫环 问题描述问题描述: 编号是 1,2,,n 的 n 个人按照顺时针方向围坐一圈,每个人持有一个 密码(正整 数) 。一开始任选一个正整数作为报数上限值 m,从第一个人开始顺 时针方向自 1 开始顺 序报数,报到 m 时停止报数。报 m 的人出列,将他的密码 作为新的 m 值,从他在顺时 针方向的下一个人开始重新从 1 报数,如此下去, 直到所有人全部出列为止。设计一个 程序来求出出列顺序。 基本要求基本要求: 利用单向循环链表存储结构模拟此过程,按照出列的顺序输出各个人的编 号。此题所用 的循环链表中不需要“头结点”,请注意空表和非空表的界限。 测试数据测试数
2、据: m 的初值为 20,n=7 ,7 个人的密码依次为 3,1,7,2,4,8,4,首先 m 的值为 6 则 正确的输出应该是 6,1,4,7,2,3,5。 要求要求: 输入数据: 首先输入待处理人员数及他们的密码, 然后输入 m 的初值, 建立单循环链表。 输出形式输出形式: 建立一个输出函数,将正确的出列序列输出。 正文:正文: 一:一:需求分析 (1)输入形式: 首先输入待处理人员数及他们的密码,然后输入 m 的初值,建立单循环链表。 此程序设 ndata = 1; for (i = 2; i password); q-data = i; p-next = q; p = q; p-ne
3、xt = (*L); void Output(LinkList *L, int m, int n) Node *p, *q; int i = 1; p = (*L); printf(“输出出对序列:“); while (n) while (i != m) q = p; p = p-next; i+; printf(“%-3d“,p-data); m = p-password; q-next = p-next; free(p); p = q-next; i = 1; n-; printf(“n“); int main(void) LinkList L; int n, m; printf(“请输入
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中设计图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 课程设计 报告 约瑟夫
