BohYoh.comトップページへ

Javaによるアルゴリズムとデータ構造

戻る  

演習4-1の解答

 List 4-6で利用しているメソッドはsize , capacity , push , pop , peek , dump のみである。すべてのメソッドを利用するプログラムを作成せよ。

// 演習4-1 // int型スタックの利用例(IntStackクラスの全メソッドを利用) import java.util.Scanner; class IntStackTesterEx {   public static void main(String[] args) {     Scanner stdIn = new Scanner(System.in);     IntStack s = new IntStack(10);    // 最大10個プッシュできるスタック     while (true) {       int menu, x = 0;       System.out.println("現在のデータ数:" + s.size() " / " +                           s.capacity());       System.out.print("(1)プッシュ (2)ポップ (3)ピーク " +                "(4)ダンプ (5)探索 (6)空にする " +                "(7)情報表示 (0)終了:");       if ((menu = stdIn.nextInt()) == 0)         break;       switch (menu) {        case 1:               // プッシュ         System.out.print("データ:");         x = stdIn.nextInt();         try {           s.push(x);          catch (IntStack.OverflowIntStackException e) {           System.out.println("スタックが満杯です。");         }         break;        case 2:               // ポップ         try {            x = s.pop();           System.out.println("ポップしたデータは" + x + "です。");          catch (IntStack.EmptyIntStackException e) {           System.out.println("スタックが空です。");         }         break;        case 3:               // ピーク         try {            x = s.peek();           System.out.println("ピークしたデータは" + x + "です。");          catch (IntStack.EmptyIntStackException e) {           System.out.println("スタックが空です。");         }         break;        case 4:               // ダンプ         s.dump();         break;        case 5:               // 探索         System.out.print("探索するデータ:");         x = stdIn.nextInt();         int n = s.indexOf(x);         if (n >= 0)           System.out.println("頂上から" (s.size() - n+"番目に存在します。");         else           System.out.println("そのデータはありません。");         break;        case 6:               // 空にする         s.clear();         break;        case 7:               // 情報表示         System.out.println("容量:" + s.capacity());         System.out.println("データ数:" + s.size());         System.out.println("空" (s.isEmpty()  "です。"                             "ではありません。"));         System.out.println("満杯" (s.isFull() "です。"                             "ではありません。"));         break;       }     }   } }


戻る