`
moshowgame
  • 浏览: 42733 次
  • 性别: Icon_minigender_1
  • 来自: 潮州
社区版块
存档分类
最新评论

链表实现约瑟夫环问题

 
阅读更多

2约瑟夫环(综合性实验)

问题描述

约瑟夫问题的一种描述是,编号为1,2,…,n的n个人按顺时针方向围坐一圈,每人持有一个密码(正整数)。一开始任选一个正整数作为报数上限值m,从第一个人开始按顺时针方向自1开始顺序报数,报到m时停止报数。报m的人出列,将他的密码作为新的m值,位于他顺时针方向上的下一个人开始重新从1报数,如此下去,直至所有人全部出列。试设计一个程序求出出列顺序。

基本要求

利用单向循环链表存储结构模拟此过程,按照出列的顺序打印出每个人的编号。

测试数据

m的初值为20,密码分别为3、1、7、2、4、8和4(正确的结果应为6、1、4、7、2、3和5)。

实现提示

程序运行后首先要求用户指定初始报数上限值,然后读取每个人的密码(设n≤30)。

本题可使用模板类LinkList,也可使用STLList容器。

注:当时控制台对齐效果做的不好,哈哈!



【MoshowMenu.h】自制简易菜单v1.02

【InitList.h】//自制的链表类

【moshowmain.cpp】主函数

分享到:
评论

相关推荐

    用循环链表实现约瑟夫环问题

    使用c语言中的循环链表及结构体实现约瑟夫环问题

    java编写的循环链表来实现约瑟夫环

    循环链表 实现约瑟夫环 java 自己写的 测试通过 有注释

    循环链表实现约瑟夫环问题

    循环链表实现约瑟夫环问题 约瑟夫环是一个数学的应用问题:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又...

    用单循环链表实现约瑟夫环问题

    《使用单循环链表解决约瑟夫环问题》 约瑟夫环问题,作为一个经典的计算机科学问题,其核心在于模拟一种淘汰机制。在这个问题中,n个人按照顺时针方向围成一个圆圈,从第1号开始报数,每报到m就出圈,然后从下一个...

    单向循环链表实现约瑟夫环.zip

    在提供的"单向循环链表实现约瑟夫环.txt"文件中,可能包含了具体的代码实现或者详细解释,包括节点定义、链表操作(如插入、删除)以及约瑟夫环算法的完整流程。通过阅读和理解这个文件,你可以深入学习如何将理论...

    单链表实现约瑟夫环

    单链表解决约瑟夫环问题

    计算机科学导论课程设计 1. 荷兰国旗问题 2. 幻方 3. 链表实现约瑟夫环 4. 逆序对个数

    接下来是链表实现约瑟夫环问题,这是一个著名的循环链表应用。问题描述为:所有人围成一个圈,按照一定的间隔(报数)剔除人,直至只剩一人。这需要理解链表的基本操作,如插入、删除,以及如何用链表模拟循环结构,...

    约瑟夫环问题通过循环链表实现(c语言版)

    通过循环链表实现约瑟夫环问题,用c语言实现。属于数据结构部分内容

    数据结构 用双向链表实现约瑟夫环

    数据结构大作业,c++用双向链表实现约瑟夫环,内含.h与.cpp

    循环链表实现约瑟夫环

    在实现约瑟夫环问题时,循环链表是一种常用的数据结构。循环链表的特点是最后一个节点的指针指向链表的第一个节点,形成一个闭合的环。这种结构非常适合模拟环形排列的人群,因为每个节点可以代表一个人,节点的下一...

    用链表实现约瑟夫环程序的设计

    总的来说,这个程序设计有效地运用了链表数据结构解决了约瑟夫环问题,通过创建、操作链表节点实现了动态删除和循环遍历的功能,充分展示了链表在处理环状结构问题上的优势。实验不仅加深了对链表和约瑟夫环问题的...

    约瑟夫环(链表实现)

    约瑟夫环是一种经典的算法问题,它的主要思想是使用链表来模拟一个环形结构,然后通过遍历这个环形结构来实现约瑟夫环的操作。下面我们将详细介绍约瑟夫环的链表实现。 首先,我们需要定义链表结点结构体`node`,它...

    用链表表示循环链表的约瑟夫环的问题的源代码的报告

    本文将深入探讨如何使用链表来实现循环链表的约瑟夫环问题,并提供相关的源代码。 一、问题概述 假设有一群人围成一个圈,从某个人开始报数,数到特定数字的人会被排除,然后从下一个人重新开始报数,直至只剩最后...

    用链表表示循环链表的约瑟夫环的问题的源代码

    以下是一个用C语言实现约瑟夫环问题的基本框架: ```c #include #include // 定义链表节点结构体 typedef struct Node { int data; struct Node* next; } Node; // 创建新节点 Node* createNode(int data) { ...

    用循环链表实现的约瑟夫环

    用循环链表的方式实现约瑟夫环,下面是部分代码, typedef struct node { int key; int seatnum; struct node *next; }node,*linklist; void createlist(linklist&l,int n) { l=(linklist)malloc(sizeof(node));...

    C++ 链表实现约瑟夫环

    用随机数生成密钥,通过循环单链表存储序号及密钥,递归输出出列顺序

    双向链表实现约瑟夫环

    已知N个人(以编号1,2,3...n分别表示)围成一个圈。 从编号为K的人开始报数,数到M的那个人出列,他的下一个人又从1开始报数,依照此规律重复下去,直到圆圈中的人全部出列。 问题:请打印出这N个的...双向链表实现的

    【C语言】双向、循环链表实现约瑟夫环

    约瑟夫环有很多种问法,这里举例了其中一种,不过都大同小异 已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围, 每个人都有自己的一个密码。 从第一个人开始报数,数到m(初始设定)的那个人出列; 他的下...

Global site tag (gtag.js) - Google Analytics