`
insertyou
  • 浏览: 900815 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

数据结构-猴子选王

 
阅读更多

一堆猴子都有编号,编号是1,2,3 ...m ,这群猴子(m个)按照1-m的顺序围坐一圈,从第1开始数,每数到第N个,该猴子就要离开此圈,这样依次下来,直到圈中只剩下最后一只猴子,则该猴子为大王。
要求:输入数据:输入m,n ,m,n 为整数,n<m
输出形式:提示按照m个猴子,数n 个数的方法,输出为大王的猴子是几号 ,建立一个函数来实现此功能。

//猴子选王
//程序:张建波
//时间:05/07/05
#include <iostream.h>

typedef struct Node{
int data;
struct Node *next;
}NODE;

int _f6_main() //主函数,也是f6的入口
{

NODE *head,*s,*q,*t;
int n,m,count=0,i;
cout<<"猴子选王程序\n";
cout<<"请输入猴子个数n,m号"<<endl;
cout<<"n=";
cin>>n;
cout<<"\nm=";
cin>>m;


for(i=1;i<=n;i++){
s=new NODE;
s->data=i;
s->next=NULL;
if(i==1){head=s,q=head;}
else
{
q->next=s;
q=q->next;
}
}
q->next=head;
cout<<"\n出队前:";
q=head;
while(q->next!=head)
{
cout<<q->data<<" ";
q=q->next;
}
cout<<q->data;
cout<<"\n出队后:";
q=head;
do
{
count++;
if(count==m-1)
{
t=q->next;
q->next=t->next;
count=0;
cout<<t->data<<" ";
}
q=q->next;
}while(q->next!=q);
cout<<q->data<<endl;

return 0;

}

分享到:
评论

相关推荐

    猴子选王程序

    综上所述,这个猴子选王程序不仅展示了如何用C语言解决经典问题,还涉及了数组、指针、循环队列等多种数据结构和算法的应用。通过深入理解这些概念,可以帮助开发者更好地掌握编程技巧和算法设计方法。

    猴子选王课程设计报告

    猴子选王问题是一种经典的计算机算法问题,通常用来教授数据结构和算法的概念,特别是循环链表的应用。在这个问题中,一群编号为1至m的猴子围坐成一圈,从第1号开始按顺序计数,每数到第n号时,该猴子就被淘汰,直到...

    数据结构常见问题:12单元27 猴子选王问题.doc

    数据结构常见问题:猴子选王问题 数据结构是一门重要的计算机科学课程,旨在研究如何组织、存储和处理数据,以满足计算机程序的需求。其中,猴子选王问题是一个经典的数据结构问题,旨在研究如何通过编程解决猴子选...

    数据结构课程设计猴子选王和二叉树建立

    数据结构课程设计猴子选王和二叉树建立的总程序

    java猴子选王

    ### Java猴子选王程序解析与理解 #### 一、题目背景及意义 “猴子选王”是一种经典的编程问题,常用于计算机科学中的算法教学。它不仅能够帮助学习者理解循环结构、数组操作等基本概念,还能锻炼逻辑思维能力。本...

    用链表实现猴子选王(C++)

    在编程领域,猴子选王问题是一个有趣的算法问题,它通常被用来考察开发者对数据结构,尤其是链表的掌握程度。本问题的C++实现利用了链表的基本操作,包括链表的创建、插入、遍历以及删除节点。下面我们将详细讨论这...

    猴子选大王问题

    猴子选大王问题是一个经典的计算机科学问题,在实际应用中常用于理解数据结构(如链表)以及算法设计的基本概念。本程序通过C语言实现了这一问题的解决方案,不仅加深了对链表的理解,还提高了编程技巧。通过阅读和...

    猴子选大王数据结构课设

    M个猴子,报数上限为N,循环报数,淘汰猴子。选出猴子王

    猴子选大王源代码及说明

    综上所述,“猴子选大王”不仅是一个有趣的游戏,也是学习和实践数据结构与算法、预处理器指令、内存管理以及输出格式化的良好案例。通过深入分析这段代码,我们不仅可以掌握其背后的编程技巧,还能理解如何将理论...

    猴子选大王(C++)带报告

    在提供的压缩包中,`猴子选王程序.doc`可能包含了这个问题的详细步骤、算法解释或程序设计报告,这有助于理解程序的工作原理和设计思路。而`猴子选大王`可能是C++源代码文件,即上述代码的实现。 总结起来,"猴子选...

    C语言:约瑟夫问题(猴子选王)附答案.doc

    《C语言:约瑟夫问题(猴子选王)——数据结构的应用》 约瑟夫问题,又称猴子选王问题,是一道经典的计算机科学问题,它涉及到数据结构和算法设计。问题描述是这样的:m个编号从1到m的人围成一圈,从第1号开始按...

    约瑟夫问题(猴子选王)——多种解法 1

    《约瑟夫问题(猴子选王)的多种解法详解》 约瑟夫问题,又称为猴子选王问题,是一个著名的理论问题,源自古希腊的一个传说。问题的基本设定是:一群囚犯围成一个圈,从某个人开始按顺时针方向报数,数到特定数值的人...

    houzi.rar_猴子选大王

    猴子选大王,也被称为“猴子选王”或“猴子拿桃”问题,是一个有趣的数学问题。故事背景是这样的:有一群猴子,它们围成一个圈,然后依次报数,每数到特定数值的猴子会被淘汰,直到只剩下一只猴子,这只猴子就被封为...

    数据结构实验报告及常见问题解答

    其次,“猴子选王”可能是一个算法问题,通常涉及到选举机制。例如,可以用栈来模拟递归的过程,每一轮淘汰掉一半的猴子,直到只剩下一个为王。或者,也可以用哈希表来记录每个猴子被淘汰的情况,避免重复计算。 ...

    数据结构课程设计程序及源码

    猴子选大王(也称为“猴子选王”或“猴子排序”)模拟了一个过程,其中猴子们依次丢弃石头,最后剩下的猴子成为大王。在编程实现中,可以使用随机数生成器来模拟猴子的随机行为,学习如何处理概率和随机事件。 2. *...

    所有猴子从1到m进行编号并围坐一圈,从第一号开始按顺序1,2,...n继续报数,凡是报n号的猴子都退出到圈外,照此循环报数,直到圈内只剩下一只猴子时,这只猴子就是大王.输出大王的编号

    这个问题是经典的计算机科学...总之,约瑟夫问题考察的是程序员对数据结构的理解和循环逻辑的掌握,同时也涉及到算法优化和效率分析。无论采用哪种方法,理解和实现这种问题的过程有助于提升编程技能和解决问题的能力。

    C语言-数据结构课程设计+实验报告

    基于数据结构中顺序表和链表的实验设计,包括...(2)单链表的应用——实现约瑟夫环、猴子选王的问题。 3. 双向链表 (1)要求实现对双向链表的建立、查找、插入和删除操作。 (2)双向链表的应用——实现长整数的相加

    数据结构课程设计源代码

    其次,“猴子选王”可能是指猴子选大王的经典问题,通常采用堆这种数据结构来解决。堆是一种特殊的树形数据结构,具有完全二叉树的性质,可以用于实现优先队列,快速找到最大或最小的元素,非常适合在猴子们投票选举...

    数据结构课程设计报告

    例如,"猴子选王"的问题就是一个典型的例子。这个问题要求学生设计一个算法,模拟一群猴子按照特定规则逐个淘汰的过程,最后剩下的猴子成为大王。在这个过程中,学生需要分析问题,选择合适的数据结构(如数组或链表...

    猴王(约瑟夫衍生问题)程序

    猴王问题,也称为“猴子选王”或“猴子王游戏”,与原始的约瑟夫环问题类似,但目标是找出最后被选中的“猴王”。在这个问题中,通常设定为每报到特定数值的猴子会被淘汰,而被淘汰的猴子会将他的两个相邻猴子也一并...

Global site tag (gtag.js) - Google Analytics