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

首先呢,小普及一下
读者:难道你当我不知道
读者想对小编说:


进入正题,项目要求如下:
一群猴子,编号是1,2,3 …m,这群猴子(m个)按照1-m的顺序围坐一圈。从第1只开始数,每数到第n个,该猴子就要离开此圈,这样依次下来,直到圈中只剩下最后一只猴子,则该猴子为大王。输入m和n,输出为大王的猴子是几号。
编译环境:Visual C++ 6.0
源代码如下:
//*Copyright  (c)2017,烟台大学计算机与控制工程学院*
//*All rights reservrd.*
//*文件名称 :main.cpp*
//*作者:田长航*
//*完成时间:2017年10月12日*
//*版本号:v1.0*
//*问题描述:猴子选大王*
//*输入描述:m和n*
//*程序输出:猴子大王编号*
#include <iostream>
using namespace std;
struct Monkey
{int num;  //猴子的编号struct Monkey *next; //下一只猴子
};int main()
{int m,n,i,j,king;Monkey *head, *p1,*p2;cin>>m>>n;if(n==1){king=m;}else{//建立猴子围成的圆圈p1=p2=new Monkey;head = p1;p1->num=1;for(i=1; i<m; i++)  //其余m-1只猴子{p1=new Monkey;  //p1是新增加的p1->num=i+1;p2->next=p1;p2=p1;          //p2总是上一只}p2->next=head;      //最后一只再指向第一只,成了一个圆圈//下面要开始数了p1=head;for(i=1; i<m; i++)  //循环m-1次,淘汰m-1只猴子{//从p1开始,数n-1只就找到第n只了for(j=1; j<n-1; j++)  //实际先找到第n-1只,下一只将是被淘汰的p1=p1->next;    //围成圈的,可能再开始从第一只数,如果还未被淘汰的话//找到了,p2=p1->next;  //p2将被删除//cout<<"第"<<i<<"轮淘汰"<<p2->num<<endl;   //可以这样观察中间结果p1->next=p2->next;  //p2就这样被“架空了”p1=p2->next;  //下一轮数数的新起点delete p2;  //将不在链表中的结点放弃掉}king=p1->num;delete p1;}cout<<king<<endl;return 0;
}

运行结果截图如下:




数据结构上机实践第四周项目5 - 猴子选大王相关推荐

  1. 第四周项目5——猴子选大王

    /* * Copyright (c++) 2016 烟台大学计算机学院 * All right reserved. * 文件名称:wu.cpp * 作    者: 武昊 * 完成日期:2016年9月2 ...

  2. 数据结构上机实践第四周项目6- 循环双链表应用

    数据结构实践--循环双链表应用 线性表都是单向的?链表都是单向的? 本次实践将利用循环双链表进行实际应用,感受这种数据结构的好处 要求如下: 设非空线性表ha和hb都用带头节点的循环双链表表示.设计一 ...

  3. 数据结构上机实践第四周项目4 - 建设双链表算法库

    数据结构之自建算法库--双链表 各种算法结构都有各自的用途,在实际中我们会碰到各种工程,单链表有时无法或者不能很好的满足我们的需求,这个时候,双链表不失为一种好的数据结构.本次实践将建立双链表算法库, ...

  4. 数据结构上机实践第四周项目7 - 多项式求和

    项目6 - 多项式求和 用单链表存储一元多项式,并实现两个多项式的加法. 提示:  1.存储多项式的数据结构  多项式的通式是pn(x)=anxn+an−1xn−1+...+a1x+a0.n次多项式共 ...

  5. 数据结构上机实践第四周项目3 - 单链表应用

    [项目3 - 单链表应用] 算法的建立就是为了应用所服务的,学会方法,真正能应用才是王道. 应用要求如下: 完成下面的应用时,除项目中给出的特殊要求,其余工作均可利用项目2完成的算法支持.  1.设计 ...

  6. 数据结构上机实践第四周项目2 - 建设“单链表”算法库

    项目2 - 建设"单链表"算法库 本次实践的目的以多文件组织的形式建设"单链表算法库",以便在后续的工程中使用. 文中的多文件组织方式不再细说,可以点击此处参照 ...

  7. 数据结构上机实践第四周项目1 - 建立单链表

    [项目1 - 建立单链表] 本次项目的目标是定义单链表存储结构,用头插法和尾插法建立单链表,并显示建立好以后的结果. 测试主函数及函数声明源代码如下: //*Copyright (c)2017,烟台大 ...

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

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

  9. 第四周实践项目5 猴子选大王(循环链表)

    /* *Copyright (c) 2017,烟台大学计算机与控制工程学院 *All rights reserved. *文件名称:项目5-一群猴子,编号是1,2,3 -m,这群猴子(m个)按照1-m ...

最新文章

  1. Nature子刊:遗传发育所白洋组发表高通量分离培养和鉴定根系细菌的方法
  2. MyEclipse Spring 学习总结一 Spring IOC容器
  3. SD-WAN — 应用场景
  4. VMware 虚拟化编程(5) — VixDiskLib 虚拟磁盘库详解之一
  5. java8升级java11到底敢不敢?
  6. 今天在cnblog开博啦
  7. 计算机二级offic考试题库2017,2017年9月计算机二级MSOffice考试题「带答案」
  8. 600分理科选计算机专业,天津600分左右,计算机或电子信息专业,怎么选院校?...
  9. C++并发中的条件变量 std::condition_variable
  10. 2019118_四个化学数据分析(3)
  11. # 每天阅读一个 npm 模块(7)- delegates
  12. 做电话营销,如何避免成为骚扰电话
  13. matlab与焓湿图,湿空气性质与焓湿图应用
  14. 尝试docker1.12内置swarm
  15. java项目笔记 - 第16章:坦克大战1.0
  16. 一站式数字藏品收款系统开发解决方案
  17. 肝进ICU,万字真言点化八大排序——我奶奶都看得懂的算法详解
  18. 如何将PDF文件转换成PPT
  19. python输入国家显示首都名_Java各国首都列表
  20. 1.1程序设计(C语言基础)

热门文章

  1. 牛客网暑期ACM多校训练营(第二场): H. travel(树形线头DP)
  2. Codeforces Round #222 (Div. 2): C. Maze(BFS)
  3. 欧拉筛(bzoj 2818: Gcd)
  4. bzoj 1616: [Usaco2008 Mar]Cow Travelling游荡的奶牛(BFS)
  5. bzoj 1303: [CQOI2009]中位数图
  6. 扩展欧几里得原理与模板
  7. Hbase数据结构+hbase shell基本语法
  8. 向量-创建数组-linspace/logspace函数
  9. Quartus17下使用Modelsim10进行仿真
  10. pyqt5_tools下找不到designer.exe新版的designer.exe放在\pyqt5_tools\Qt\bin下