数据结构实验报告约瑟夫环.docVIP

  • 135
  • 0
  • 约5.73千字
  • 约 17页
  • 2017-05-21 发布于贵州
  • 举报
数据结构实验报告约瑟夫环

数据结构实验报告约瑟夫环 数据结构实验报告1约瑟夫环 一、上机实验的问题和要求: 约瑟夫环 问题描述:编号是1,2,?,n(n0)的n个人按照顺时针方向围坐一圈,每人持有一正整数密码。开始时任选一个正整数作为报数上限值m,从某个人开始按顺时针方向自1开始顺序报数,报到m时停止报数,报m的人出列,将他的密码作为新的m值,从他在顺时针方向的下一个人开始重新从1报数,如此下去,直到所有人全部出列为止。令n最大值取30。设计一个程序来求出出列顺序,并输出结果。 基本要求:利用单向循环链表存储结构模拟此过程,按照出列的顺序输出各人的编号。 二、程序设计的基本思想,原理和算法描述: (包括程序的结构,数据结构,输入/输出设计,符号名说明等) (1)算法的基本思想: 约瑟夫环问题中的数据是人所在的位置,而这种数据是存在“第一元素、最后元素”,并且存在“唯一的前驱和后继的”,符合线性表的特点。由于需要模拟约瑟夫环的出列问题,可以采用顺序表来实现线性表,完成出列顺序的输出。 核心算法主要分为两步: 1、确定需要删除的位置, 2、设置并删除该位置。 已知报数间隔m,我们可以把当前位置加上m获得需要删除的位置,如果获得的位置超过顺序表中实际元素的总长度,则可以通过减去数组的实际长度来修正(即模拟环状计数)。然后把顺序表中的当前指向位置设置为该位置,继而删掉该位置。 反复进行上述确定位置和删除位置的操作,

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档