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);
}
}
}
为什么会出现这样的报错
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- 皮蛋不吃粥 2022-10-06 14:29关注
根节点为空直接返回
if (root == null) { root = newNode; return; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 求MCSCANX 帮助
- ¥15 机器学习训练相关模型
- ¥15 Todesk 远程写代码 anaconda jupyter python3
- ¥15 我的R语言提示去除连锁不平衡时clump_data报错,图片以下所示,卡了好几天了,苦恼不知道如何解决,有人帮我看看怎么解决吗?
- ¥15 在获取boss直聘的聊天的时候只能获取到前40条聊天数据
- ¥20 关于URL获取的参数,无法执行二选一查询
- ¥15 液位控制,当液位超过高限时常开触点59闭合,直到液位低于低限时,断开
- ¥15 marlin编译错误,如何解决?
- ¥15 VUE项目怎么运行,系统打不开
- ¥50 pointpillars等目标检测算法怎么融合注意力机制