线性表的应用 约瑟夫环_第1页
线性表的应用 约瑟夫环_第2页
线性表的应用 约瑟夫环_第3页
线性表的应用 约瑟夫环_第4页
线性表的应用 约瑟夫环_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

线性表的应用约瑟夫环(Josephu环)

约瑟夫问题:编号为1,2,..n的n个人按顺时针方向围坐一圈,每人持有一个密码(正整数)。一开始任选一个正整数作为报数上限值m,从第一个人开始按顺时针方向自1开始顺序报数,报到m时停止报数。报m的人出列,将他的密码作为新的m值,从他在顺时针方向上的下一个人开始重新从1报数,如此下去,直至所有人全部出列为止。试设计一个程序来求出出列顺序,并输出结果。【问题描述】线性表的应用--约瑟夫环(Josephu环)

对于一个综合性问题,其求解步骤如下:1.分析问题,对问题建立数据模型2.根据问题的特点和运算为数据模型设计适当的存储结构3.基于存储结构设计相应的算法4.调试算法,上机实现【分析问题】线性表的应用--约瑟夫环(Josephu环)分析问题最好的方法是应用实例

设:M的初值为3;n=6,6个人的密码依次为:3,1,7,2,4,8【分析问题】线性表的应用--约瑟夫环(Josephu环)21345631724821345672134564213456221345632134563出列顺序为:3,5,4,1,2,6

由上述分析可得:数据模型----线性表把每个人的编号看成是一个数据元素,n个编号构成一个线性表线性表的应用--约瑟夫环(Josephu环)

设:M的初值为3;n=6,6个人的密码依次为:3,1,7,2,4,8【分析问题】数据模型

存储结构设计线性表的应用--约瑟夫环(Josephu环)

设:M的初值为3;n=6,6个人的密码依次为:3,1,7,2,4,8【分析问题】约瑟夫环问题本身具有循环性质,采用循环单链表需要设置头结点吗?为了统一对表中任意结点的操作,循环链表不带头结点1236head456

存储结构设计线性表的应用--约瑟夫环(Josephu环)

设:M的初值为3;n=6,6个人的密码依次为:3,1,7,2,4,8【分析问题】类型描述:typedefstruct{//个人数据的基本结构

intNum;//编号

intPwd;//密码}datatype;Typedefstructnode{链表结点结构

datatypedata;//或intNum,pwd;structnode*next;}*jsphList,Lnode;

为了便于删除操作,从2开始计数线性表的应用--约瑟夫环(Josephu环)

设:M的初值为3;n=6,6个人的密码依次为:3,1,7,2,4,8【分析问题】算法设计1236head456prepCount=21.工作指针pre和p初始化,计数器count初始化

Pre=head;p=head->next;count=22.循环直到p=pre2.1如果count=m,则

2.1.1输出结点p的编号和密码

2.1.2新的m=当前人的密码

2.1.2删除结点p2.1.3计数器count=1,重新开始计数。2.2否则,

2.2.1工作指针pre和p后移

2.2.2计数器增12.3链表中只剩下一个结点P,输出结点p后将结点p删除线性表的应

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论