- 3
- 0
- 约3.01千字
- 约 5页
- 2023-10-11 发布于湖北
- 举报
一、上机实验的问题和要求:
约瑟夫环
问题描述:编号是1,2,…,n(n0)的n个人按照顺时针方向围坐一圈,每人持有一正整数密码。开始时任选一个正整数作为报数上限值m,从某个人开始按顺时针方向自1开始顺序报数,报到m时停止报数,报m的人出列,将他的密码作为新的m值,从他在顺时针方向的下一个人开始重新从1报数,如此下去,直到所有人全部出列为止。令n最大值取30。设计一个程序来求出出列顺序,并输出结果。
基本要求:利用单向循环链表存储结构模拟此过程,按照出列的顺序输出各人的编号。
二、程序设计的基本思想,原理和算法描述:
(包括程序的结构,数据结构,输入/输出设计,符号名说明等)
算法的基本思想:
约瑟夫环问题中的数据是人所在的位置,而这种数据是存在“第一元素、最后元素”,并且存在“唯一的前驱和后继的”,符合线性表的特点。由于需要模拟约瑟夫环的出列问题,可以采用顺序表来实现线性表,完成出列顺序的输出。
核心算法主要分为两步:
1、确定需要删除的位置,
2、设置并删除该位置。
已知报数间隔m,我们可以把当前位置加上m获得需要删除的位置,如果获得的位置超过顺序表中实际元素的总长度,则可以通过减去数组的实际长度来修正(即模拟环状计数)。然后把顺序表中的当前指向位置设置为该位置,继而删掉该位置。
反复进行上述确定位置和删除位置的操作,直到顺序表为空。
主程序的流程:
程序由三个模块组
您可能关注的文档
最近下载
- 行政管理学(第五版)郭小聪-第8章.pptx VIP
- 大连鸿金机械燃煤锅炉改建生物质锅炉项目环境影响报告表.pdf VIP
- 人教版(新教材)小学美术六年级上册第一单元《第3课 丝路开繁花》精品课件.pptx VIP
- 海浮乐hydrostatic_guides.pdf VIP
- 土壤样品采集现场记录表.doc
- 王陆雅思听力807词.pdf VIP
- 欧洲规范-NF P98-532-1-中文.pdf VIP
- 赵2022年土地登记代理人题库700道(精选题).docx
- DL_T 1806-2018 油浸式电力变压器用绝缘纸板及绝缘件选用导则.docx VIP
- 2026年养老院服务质量标准化方案.docx VIP
原创力文档

文档评论(0)