2


二分木で少し遊んで、ツリーの作成をクリックしたときに、二分木を作成するか、作成した二分木に値を挿入するか、それを削除するかをユーザーが選択するメニューを作成しました。ツリーが作成され、メニューが再び表示され、このツリーに数値を入力したいのですが、その変数はケースに設定されていません。各ケースでその変数を設定する必要がありますか? または、グローバル変数を使用できますか?
これが私のメニュークラスのコードです。

import java.util.Comparator;
 import java.util.Scanner;


 public class TreeMenu {

 public static void main(String[] args) {

     while(true ){
         System.out.println("\n------------Menu-----------");
         System.out.println("1. Create Tree");
         System.out.println("2. Delete Tree");
         System.out.println("3. Insert Value INTO the tree");
         System.out.println("4. Exit ");
         System.out.println("Please Select Your Choice");

         Scanner choice = new Scanner(System.in); 
         int i = choice.nextInt();
         if(i>0 && i<=4){
         switch (i)
          {

            case 1:{

                System.out.println("Creating a Tree Please Wait........");
                Comparator comp = new IntegerComparator();
                BST tree1 = new BST(comp);
                break;
            }
            case 2:{
                System.out.println("You Chose TWO");
                break;
            }
            case 3:{
                Scanner Number = new Scanner(System.in); 
                 int num = Number.nextInt();
                 tree1.insert(num);

            }
            case 4:{
                System.exit(0);

            }

           }

          }
         else{
             System.out.println("There is no number in the menu like that "+i);
             System.exit(0); 

         }
     }

 }

 }

彼の値を作成して挿入した同じツリーをどのように使用できますか?
ありがとう

4

1 に答える 1

3

tree1プライベート グローバル変数として次のように宣言します。

  public class TreeMenu {
    private static BST tree1 = null;
    .....

tree1内でそれをインスタンス化するとswitch case 1、同じツリー変数を内部で使用できますcase 2

case 2 and 3注意すべきことは、 でエラー チェックを行う必要があることですtree1 == null。これは、ツリーがまだ作成されていないことを意味します。

于 2013-02-09T15:32:38.740 に答える