
对于约瑟夫环问题,采用线性链表结构(m=20, n=7),其中7个人的密码依次为:3、1、7、2、4、8、4。
5星
- 浏览量: 0
- 大小:None
- 文件类型:None
简介:
题目:每位参与者都持有唯一的密码。程序首先设定一个正整数m,作为报数上限,然后从某个人开始进行循环报数,直至该人报到m时退出。接着,以该退出者手中的密码作为新的报数上限,再次进行报数,以此类推,直到所有人都出列。最后,程序需打印出列人的序号的先后顺序。一. 需求分析1. 在本演示程序中,参与者的总人数n可以任意设定。程序应首先接受一个值并将其赋值给初始报数上限m,随后能够自动记录出列人的序号并赋予其所持密码作为新的报数上限。此过程应持续循环,直至所有参与者都已出列。2. 演示程序采用用户与计算机交互的方式运行,即在计算机终端上显示“提示信息”后,用户通过键盘输入每个人的密码。程序则自动为每个人分配序号。3. 程序执行的主要命令包括:(1)构建链表;(2)输入数据;(3)执行报数操作,同时储存出列人的序号、删除出列者信息以及将出列者的密码赋给m;(4)结束运行。4. 测试数据(1)当m=20且n=7时,7个人的密码依次为:3, 1, 7, 2, 4, 8, 4。在这种情况下,正确的出列顺序应为6, 1, 4, 7, 2, 3, 5. 最终的出列顺序为6,1,4,7,2,3,5。二. 概要设计为了实现上述流程及功能需求,建议采用单向循环链表作为存储结构。1. 基本操作:code() 操作结果:构建一个空链表;若成功则初始化每个人的相关信息. code() 操作结果:释放指向出列者的结点并重新开始报数.2. 本程序包含三个独立的模块:(1)主程序模块;(2)负责构造链表并输入每个人信息的模块;(3)负责释放结点的模块.
全部评论 (0)
还没有任何评论哟~


