数据结构课程设计,只做其中一题14、 猴子选大王  任务:一堆猴子都有编号,编号是1,2,3 ...m ,这群猴子(m个)按照1-m的顺序围坐一圈,从第1开始数,每数到第N个,该猴子就要离开此圈,这样依

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/27 22:46:29
数据结构课程设计,只做其中一题14、 猴子选大王  任务:一堆猴子都有编号,编号是1,2,3 ...m ,这群猴子(m个)按照1-m的顺序围坐一圈,从第1开始数,每数到第N个,该猴子就要离开此圈,这样依

数据结构课程设计,只做其中一题14、 猴子选大王  任务:一堆猴子都有编号,编号是1,2,3 ...m ,这群猴子(m个)按照1-m的顺序围坐一圈,从第1开始数,每数到第N个,该猴子就要离开此圈,这样依
数据结构课程设计,只做其中一题
14、 猴子选大王  任务:一堆猴子都有编号,编号是1,2,3 ...m ,这群猴子(m个)按照1-m的顺序围坐一圈,从第1开始数,每数到第N个,该猴子就要离开此圈,这样依次下来,直到圈中只剩下最后一只猴子,则该猴子为大王.  要求:  输入数据:输入m,n m,n 为整数,n

数据结构课程设计,只做其中一题14、 猴子选大王  任务:一堆猴子都有编号,编号是1,2,3 ...m ,这群猴子(m个)按照1-m的顺序围坐一圈,从第1开始数,每数到第N个,该猴子就要离开此圈,这样依
//先来贴一个二叉树的,等下再贴猴子选大王(这是一个递归算法,挺好玩的)
class BinaryTree
{
class Node
{
private int data; //保存数据内容
private Node left; //左子树
private Node right;//右子树
public Node(int data){
this.data = data;
}
public void addNode(Node newNode){ //addNode方法用来添加数据
if(newNode.data this.data){
if(this.right == null){ //右子树为空
this.right = newNode;
}else{
this.right.addNode(newNode);//继续向下判断
}
}
} //addNode方法结束
public void printNode(){ //采用中序遍历(左-根-右)
if(this.left != null){
this.left.printNode();
}
System.out.println(this.data); //找到根内容
if(this.right != null){
this.right.printNode();
}
}
} //Node类结束
private Node root; //根节点
public void add(int data){
Node newNode = new Node(data);
if(this.root == null){
this.root = newNode;
}else{
this.root.addNode(newNode);
}
}
public void print(){
this.root.printNode();
}
}
public class Demo
{
public static void main(String args[]){
BinaryTree bt = new BinaryTree();
bt.add(3);
bt.add(4);
bt.add(0);
bt.add(1);
bt.print();
}
}
//再来贴一个猴子选大王的代码:
import java.util.*;
class M{
private int monkey;
private int kill;
private List list;
public M(int monkey,int kill){
this.list = new ArrayList() ;
this.monkey = monkey ;
this.kill = kill ;
for(int i=1;ikill){
M m=new M(monkey,kill);
}else if( monkey==0 || kill ==0 || monkey == kill){
System.out.println("输入不能为零,M不能等于N值");
}else{
System.out.println("M值必须大于N值!");
}
}
}