约瑟夫环问题实验报告材料.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实用文案 约瑟夫环问题实验报告 实验课题:用循环链表解决约瑟夫环的问题 参与者: XX XXX 班 级: 教育技术 121 班 日 期: 2013 年 10 月 11 日 上机环境:宿舍个人电脑,硬件设施如下图所示: 实验要求 【实验目的】 熟悉 C语言的基本编程方法, 掌握线性表的操作实现方法, 培养使用线性表解决实际问题的能力。 【实验内容】 利用循环链表实现约瑟夫问题的求解。 标准文档 实用文案 存储结构:循环链表 约瑟夫问题如下: 一 、小孩报数问题 有 N 个小孩围城一圈,给他们从 1 开始依次编号,现指定从第 W 个开始报数,报到第 S 个时,该小孩出列,然后从下一个小孩开 始报数,仍是报到第 S 个时出列,如此重复下去,直到所有的小 孩都出列 (总人数不足 S 个时将循环报数) ,求小孩出列的顺序。 算法分析 :用一个标准的输入输出的头文件 iostream.h ,为了 统一对表中任意节点的操作, 循环链表不带头结点。 循环链表的 结点定义为如下结构类型: #includeiostream.h struct Node { int data; struct Node *next; }; int main() { int m,n; cout 请输入 m的值; cinm; cout 请输入 n 的值; cinn; 标准文档 实用文案 Node *first,*last; first=last=new Node;// 生成第一个结点 first-data=1; for(int i=2;in+1;i++) { Node *p=new Node; p-data=i; last-next=p;last=p;// 链接结点 } last-next=first; int number=n; Node *pre=last; while(number1) { for(int j=1;jm;j++) pre=pre-next; Node *p=pre-next; pre-next=p-next; coutp-data ; delete p; number--; } 标准文档 实用文案 coutpre-data ; delete pre; } 输出结果如下图所示: 二 、 Joseph( 约瑟夫 ) 问题是非常著名的。最原始的问题是: n 个人,记为 1,2,... ,n,站成一圈。从第一个人开始数,数 到的第 m个人将要被处死,如此反复进行,直到只剩下一个人, 而这个人会获救。 比如: 当 n=6,m=5,那么这些人将以 5,4 ,6, 2,3 的次序被处死,而 1 就获救了。 假设有 k 个好人和 k 个坏人围成一圈,其中 1 到 k 是好人, (k+1)到 2k 是坏人。你必须选择 m使得所有的坏人都先被处死, 然后才是第一个好人; 并且要求 m最小。#includeiostream.h struct Node { 标准文档 实用文案 int data; Node *pNext; }; void main() { int n,k,m,i; Node *p,*q,*head; cout 输入 n 的值 :; cinn

文档评论(0)

wanggx999 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档