n只猴子要选大王,选举办法如下:所有猴子按1、2、3、……、n编号围坐一圈,从第1号开始按照1、2、3、……、m报数,凡报m号的退出圈外,如此循环报数,直到圈内剩下一只猴子时,这只猴子就是大王。n和m由键盘输入,打印出最后剩下的猴子号码。

要求:必须用单向循环链表实现。

#include<stdlib.h>
#include<stdio.h>#define OK 1
#define ERROR -1
typedef int ElemType;
typedef int Ststus;//1.链表的构建
typedef struct Lnode
{ElemType data;//数据域,保存节点值struct Lnode *next;//指针域
}LNode;//节点类型Lnode * chuangjian(int m)
{int i=1,j;Lnode *head,*p,*q;head=p=(LNode*)malloc(sizeof(LNode));//头指针的构建 while(i<=m)//尾插法 {q=(LNode*)malloc(sizeof(LNode));//循环添加节点 q->data=i;//赋值给节点 p->next=q;//将新创建节点插入链表尾部 p=q;//尾节点后移 i++; }head=head->next;q->next=head;//构成单向循环链表(将头节点抛弃,头节点无赋值)return p;// 返回地址
}void taotai(Lnode *p,int m,int n)
{Lnode *q;int i,j;j=m;while(j>=1)//判断是否筛选出猴王,没有继续循环 {for(i=1;i<=n;i++)//循环查找淘汰的和猴子 {q=p;//确定删除节点的前一个节点,便于操作 p=p->next;}q->next=p->next;if(j!=1)//判断是否是猴王,猴王不输出淘汰 printf("淘汰第%d只猴子%d\n",m-j+1,p->data);free(p);//释放掉淘汰的猴子节点 p=q;//将p重新指向 j--;}printf("猴王是%d\n",p->data);}
int main()
{LNode *head;int m,n;//输入猴子数量 printf("请输入猴子的数量:\n");scanf("%d",&m);//输入一次淘汰猴子的上限 printf("请输入淘汰猴子的数量:\n");scanf("%d",&n);head=chuangjian(m); //创建单项循环链表 taotai(head,m,n);//判断删减,输出猴王
}

数据结构例题(C语言)——猴子选大王相关推荐

  1. 猴子选大王 java_基于java数据结构链表写的猴子选大王

    [实例简介] 基于java数据结构链表写的猴子选大王,其实就是一个约瑟夫环问题,采用java数据结构链表写的.有点小问题.当输入一只猴子,报数为1时删除会出错.没有实现动态显示猴子的添加和删除. [实 ...

  2. c语言-猴子选大王-约瑟夫问题(队列,链表,数组)

    猴子选大王 前言:初读此题,根据题意,顺势想到了用刚学的数据结构中的循环队列及循环链表,便想借此来熟练一下新学知识. 题目描述: 一群猴子要选新猴王.新猴王的选择方法是:让N只候选猴子围成一圈,从某位 ...

  3. c语言猴子选大王注释,猴子选大王问题(C语言实现)

    题目大概是这样的: n只猴子(n不超过50)围成一个圈.从某一只开始依次给猴子们编号,从1到n.然后从第一只猴子开始,从1开始依次报数,报到m的猴子离开圈子.从这只离开的猴子的下一只开始再从1开始报数 ...

  4. c语言猴子选大王指针,C语言描述怎么用循环队列实现猴子选大王

    匿名用户 1级 2016-12-16 回答 #include #include typedef struct node//定义链表节点类型 { int data; struct node *next; ...

  5. 猴子选王c语言链表程序代码,数据结构(C语言)用栈和链表编写猴子选大王程序...

    <数据结构(C语言)用栈和链表编写猴子选大王程序>由会员分享,可在线阅读,更多相关<数据结构(C语言)用栈和链表编写猴子选大王程序(3页珍藏版)>请在人人文库网上搜索. 1.i ...

  6. 用C语言编写猴子选大王程序(数据结构)

    猴子选大王案例编程. 编程要求:猴子选大王:一堆猴子都有编号,编号是1,2,3 -m ,这群猴子(m个)按照1–m的顺序围坐一圈,从第1开始数,每数到第n个(n<m),该猴子就要离开此圈,这样依 ...

  7. 【数据结构机试复习2】 赛马 猴子选大王

    EX1:赛马 A与B之间将进行一场赛马比赛,C为裁判.A与B分别拥有n匹马,这2n匹马中每匹马拥有的能力值都不相同.比赛前,参赛的两人先决定自己的马的出场顺序:比赛时,A的第一匹马将对战B的第一匹马, ...

  8. 数据结构上机实践第四周项目5 - 猴子选大王

    数据结构实践--猴子选大王 首先呢,小普及一下 读者:难道你当我不知道 读者想对小编说: 进入正题,项目要求如下: 一群猴子,编号是1,2,3 -m,这群猴子(m个)按照1-m的顺序围坐一圈.从第1只 ...

  9. 数据结构实践——猴子选大王

    本文针对数据结构基础系列网络课程(2):线性表的实践项目. [项目 - 猴子选大王] 一群猴子,编号是1,2,3 -m,这群猴子(m个)按照1-m的顺序围坐一圈.从第1只开始数,每数到第n个,该猴子就 ...

  10. 数据结构实践——猴子选大王(数组版)

    本文针对数据结构基础系列网络课程(5): 数组与广义表的实践项目. [项目 - 猴子选大王(数组版)] 一群猴子,编号是1,2,3 -m,这群猴子(m个)按照1-m的顺序围坐一圈.从第1只开始数,每数 ...

最新文章

  1. python的基本语法和语言_Python基本语法
  2. php-redis 下载地址
  3. 深入浅出《设计模式》之工厂模式(C++)
  4. Python习题week1
  5. Hexo 入门指南(四) - 页面、导航、边栏、底栏
  6. (5)ES6解构赋值-函数篇
  7. NOPI修改xlsx文件内容,无法正常打开,提示文件格式或文件扩展名无效
  8. SQL Server 创建链接服务器
  9. Arcgis培训内容
  10. 微信小程序的点击、双击、长按事件
  11. 论文常用 | FineBI v6.0 新图表 | 箱形图
  12. linux下,代码阅读工具,understand
  13. mysql expire_mysql expire_logs_days是怎么生效和计算出来的
  14. 分享过几个【贪吃蛇】了,再分享一下也不过分吧?(妙趣横生)
  15. ABP官方文档(四十四)【后台作业和后台工人】
  16. 评价指标 balanced accuracy
  17. 教程--为公众号接入客服机器人
  18. 网络安全等级保护与分级保护指导案例
  19. Unity编辑器下红点树实现方案
  20. 面试接连翻车,我到底该怎么办

热门文章

  1. java定义形状类shape_c++ 形状类Shape(派生出圆类Circle和矩形类Rectangle)
  2. FlowNet到FlowNet2.0
  3. 6.4 键盘消息和字符集
  4. 第一家申请破产的社区团购平台:同程生活
  5. 德州申请著作权有以下几点好处
  6. RHCSA/RHCE 7官方中文教材
  7. React路由传参v5-v6
  8. PolSARpro v6安装教程
  9. 闭关修炼(十三)Netty入门
  10. love oneself