0
我正在編寫一個程序來玩Java的河內遊戲塔。我們將使用堆棧來表示塔。我有3個堆棧,其中兩個我初始化爲空,最後一個填充用戶定義數量的光盤。我有一個Hanoi類文件,因此我們可以使用Hanoi構造函數,它接受一個整數並創建一個具有該尺寸的光盤。我很難找出代碼,以我的初始化方法將光盤推入堆棧(它們的大小是其位置的鏡像,因此光盤1的大小爲1等)。任何幫助都將不勝感激。使用堆棧在Java中的河內塔
這裏是我河內類光盤構造:
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;
這應該初始化所有的人都爲空。那麼我應該根據用戶輸入爲每個磁盤創建一個新的Hanoi對象,並按相反順序將它們推入堆棧?
首先,這是功課嗎?如果是這樣,應該標記爲「功課」。其次,你正在初始化太多次:第一個循環就足夠了。在第二個和第三個,你只是分別覆蓋第二,第三個單元格和第三個單元格。 – MaDa
出於好奇,你是否恰好在溫莎大學學習?我建議有三個類來模擬問題:河內,Peg和Disk。河內將擁有Pegs A,B和C.每個Peg都會有一堆磁盤。 – erisco
是的,這是作業,謝謝你,我會修復初始化。我應該將第一個塔初始化爲包含大小爲1-n的光盤的堆棧。 – NU2JAVA