ハノイの塔5 (LinkedListを使って)

LinkedList

LinkedListを使ってみましょう

LinkedList<Integer> pile = new LinkedList<Integer>();

使えるメソッド

//リストの最後に、指定された要素 (ここでは 5) を追加します。
pile.add(5);
//リストから最後の要素を削除して返します。
a = pile.removeLast();
//最後の要素が5だった場合、aは5になります。

ファイル名 Bou.java

クラスを作ってみる

import java.util.*;
public class Bou { 
   char name;
   LinkedList<Integer> pile = new LinkedList<Integer>();
   public Bou(char nam,int maisuu) { 
      name = nam;
      while ( maisuu >0 ){
         pile.add(maisuu);
         maisuu--;
      }
   }
   public Bou(char nam) { 
      name = nam;
      pile.clear();
   }
   public String toString(){
       String x = name + ":";
       for ( int p : pile){
           x= x + p + " ";
       }
       return x;
    }
}

3本のBouを作る例

int maisuu  =  3;
Bou[] bou = {
    new Bou('A',maisuu),
    new Bou('B'),
    new Bou('C')
};

3本のBouを作る例 その2

int maisuu  =  3;
Bou bouA = new Bou('A',maisuu),
Bou bouB = new Bou('B'),
Bou bouC = new Bou('C'),

Bouを使うプログラム

Bouに1から5の要素を加え、その都度

System.out.println ( bou );

で確認し、

その後、後から一つずつ取り去って同様に確認するプログラムを作りなさい。

TestBou.java

import java.util.*;
public class TestBou { 
   public static void main(String[] args){
      Bou bouA = new Bou('A');
      System.out.println(bouA);
      for(int i=1;i<=5;i++){
         bouA.pile.add(i);
         System.out.println(bouA);
      }
      for(int i=5;i>0;i--){
         int a = bouA.pile.removeLast();
         System.out.println(bouA);
         System.out.println("a="+ a);
      }
   }
}

実行結果はこうなります

A:
A:1
A:1 2
A:1 2 3
A:1 2 3 4
A:1 2 3 4 5
A:1 2 3 4
a=5
A:1 2 3
a=4
A:1 2
a=3
A:1
a=2
A:
a=1
もくじ

聖愛中学高等学校
http://www.seiai.ed.jp/
Last Modified