我玩了一些二叉树并构建了一个菜单,用户选择是否构建二叉树,将值插入到他构建的二叉树中或删除它,当我点击树的创建时。树被创建,然后菜单再次出现,现在我想在这个树中放一个数字,但是在这种情况下没有设置变量,每个情况都应该设置它的变量?或者你可以使用全局变量?
这是我的菜单类代码。
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);
}
}
}
}
我如何使用创建并插入其中的相同树值? 感谢
答案 0 :(得分:3)
将tree1
声明为私有全局变量
public class TreeMenu {
private static BST tree1 = null;
.....
现在在tree1
中实例化switch case 1
,然后您可以在case 2
需要注意的是,您需要在case 2 and 3
中进行错误检查,如果tree1 == null
,则表示尚未创建任何树。