Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用堆栈的爪哇河内塔_Java_Stack_Towers Of Hanoi - Fatal编程技术网

Java 使用堆栈的爪哇河内塔

Java 使用堆栈的爪哇河内塔,java,stack,towers-of-hanoi,Java,Stack,Towers Of Hanoi,我正在写一个用Java玩河内塔游戏的程序。我们将使用堆栈来表示塔。我有一个3层的阵列,其中两层我初始化为空,最后一层填充用户定义数量的光盘。我有一个给定的Hanoi类文件,所以我们可以使用Hanoi构造函数,它接受一个整数并创建一个这样大小的光盘。在初始化方法中,我很难找到将光盘推到堆栈上的代码(它们的大小反映了它们的位置,因此光盘1的大小为1等)。如有任何帮助,将不胜感激 这是我的Hanoi类光盘构造函数: public class Hanoi{ private int discSize;

我正在写一个用Java玩河内塔游戏的程序。我们将使用堆栈来表示塔。我有一个3层的阵列,其中两层我初始化为空,最后一层填充用户定义数量的光盘。我有一个给定的Hanoi类文件,所以我们可以使用Hanoi构造函数,它接受一个整数并创建一个这样大小的光盘。在初始化方法中,我很难找到将光盘推到堆栈上的代码(它们的大小反映了它们的位置,因此光盘1的大小为1等)。如有任何帮助,将不胜感激

这是我的Hanoi类光盘构造函数:

public class Hanoi{

private int discSize; //size (radius) of the disc 

public Hanoi(int size){ //creates a disk of the specifed size
    discSize = size;
}
和我的初始化方法

    public static Stack<Hanoi>[] initialize(int n){

   System.out.println("How many discs in the game?");
   Scanner sc = new Scanner(System.in);
   int numDisc = sc.nextInt();
   int size = numDisc;

   Stack<Hanoi>[] tower = new Stack[3];
    for (int i = 0; i < 3;i++){
      tower[i] = new Stack<Hanoi>();
    }
    }


    Hanoi.PrintStacks(tower);
    // System.out.println(hanoi[2].peek());
     return tower;
公共静态堆栈[]初始化(int n){
System.out.println(“游戏中有多少张光盘?”);
扫描仪sc=新的扫描仪(System.in);
int numDisc=sc.nextInt();
int size=numDisc;
烟囱[]塔=新烟囱[3];
对于(int i=0;i<3;i++){
塔[i]=新堆栈();
}
}
河内.印刷堆栈(塔);
//System.out.println(hanoi[2].peek());
回流塔;
这将初始化所有这些文件为空。那么,我是否应该根据用户输入为每个磁盘创建一个新的Hanoi对象,并将它们按相反的顺序堆叠

那么,我是否应该根据用户输入为每个磁盘创建一个新的hanoi对象,并将它们按相反的顺序堆叠


首先,这是家庭作业吗?如果是,则应标记“家庭作业”。其次,初始化次数太多:第一个循环就足够了。在第二和第三,你只是覆盖第二,第三细胞和第三细胞,分别出于好奇,你是否在温莎大学学习?我建议使用三个类来建模问题:Hanoi、Peg和Disk。Hanoi将有Peg A、B和C。每个Peg将有一堆磁盘。是的,这是家庭作业,谢谢。我将修复初始化。我应该将第一个塔初始化为包含大小为1-n的光盘的堆栈。不,对不起,谢谢你的建议。我们得到了一个hanoi类,它存储游戏中单个磁盘的信息。
for (int i = numDisc; i > 0; --i)
    tower[0].push(new Hanoi(i));