package dd;
import java.util.Scanner;
class Node {
public double data;
public dd.Node leftNode;
public dd.Node rightNode;
public Node(double n) {
data = n;
}
public void display() {
System.out.print(this.data + "\t");
}
}
class Tree {
private dd.Node root;
public void insert(double data) {
dd.Node newNode = new dd.Node(data);
if (root == null) {
root = newNode;
}
dd.Node current = root;
dd.Node parentNode = null;
while (current != null) {
parentNode = current;
if (current.data > data) {
current = current.leftNode;
if (current == null) {
parentNode.leftNode = newNode;
}
} else {
current = current.rightNode;
if (current == null) {
parentNode.rightNode = newNode;
}
}
}
}
public void preOrderTraverse() {
preOrderTraverse(root);
System.out.println();
}
private void preOrderTraverse(Node node) {
if (node == null)
return;
node.display();
preOrderTraverse(node.leftNode);
preOrderTraverse(node.rightNode);
}
}
public class Main {
public static void showmenu(){
System.out.println("-------------------------\n");
System.out.println("a to add \n");
System.out.println("b to show \n");
System.out.println("c to quit\n");
System.out.println("-------------------------\n");
}
public static void main(String[] args) {
Tree tree = new Tree();
double a;
char ch;
Scanner sc = new Scanner(System.in);
showmenu();
ch = sc.next().charAt(0);
while (ch != 'c') {
switch (ch) {
case 'a':
System.out.println("Enter a numble :\n");
a = sc.nextDouble();
tree.insert(a);
break;
case 'b':
System.out.println("Here is the result:\n");
tree.preOrderTraverse();
break;
case 'c':
break;
default:
break;
}
showmenu();
ch = sc.next().charAt(0);
}
}
}

不知道你这个问题是否已经解决, 如果还没有解决的话:
如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^