クラスHanoiのコンストラクタ

------------------------------------

クラスHanoiのコンストラクタでは3本の塔を立て、そこに指定された数のリングを積むことにしました。

別の言葉で言うと、Stack[] towerを初期化します。

リングの数を指定してもらう必要があるので、シグニチャは

Hanoi(int numOfRings)

となります。

------------------------------------

さて、3本の塔を立てます。まずは、

tower = new Stack[3];

メモリを確保します。次に

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

で確保したメモリを埋めます

------------------------------------

最後にリングを積みます。

for (int i = numOfRings; i > 0; i--) {
    tower[0].push(new Integer(i));
}

で、numOfRingsから1まで降順にリングを積みます。例えばnumOfRings=3なら321の順でtower[0]にプッシュされます。

ここでpush(new Integer(i))としているのは、java.util.Stack.push()のシグニチャが

public Object push(Object item)

のためです。

int型の変数はObjectでないため、iをそのままpushはできません。

------------------------------------
前の項目へ次の項目へ

「メイキング・オブ・ハノイの塔」のページへ