BinaryTree - 带开关盒

时间:2013-02-09 15:26:17

标签: java switch-statement binary-tree


我玩了一些二叉树并构建了一个菜单,用户选择是否构建二叉树,将值插入到他构建的二叉树中或删除它,当我点击树的创建时。树被创建,然后菜单再次出现,现在我想在这个树中放一个数字,但是在这种情况下没有设置变量,每个情况都应该设置它的变量?或者你可以使用全局变量?
这是我的菜单类代码。

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); 

         }
     }

 }

 }

我如何使用创建并插入其中的相同树值? 感谢

1 个答案:

答案 0 :(得分:3)

tree1声明为私有全局变量

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

现在在tree1中实例化switch case 1,然后您可以在case 2

中使用相同的树变量

需要注意的是,您需要在case 2 and 3中进行错误检查,如果tree1 == null,则表示尚未创建任何树。