【发布时间】:2020-05-11 17:33:38
【问题描述】:
我正在尝试创建二叉搜索树,但代码似乎不起作用。 我的 BinaryNode 的构造函数和变量
private BinaryNode left;
private BinaryNode right;
public BinaryNode() {
val = null;
left = null;
right = null;
}
public BinaryNode(String a, BinaryNode b, BinaryNode c) {
val = a;
left = b;
right = c;
}
这是我的 add 和 printPostOrder 方法。 BinaryNode x 是一个以 y 为值的节点将成为其子节点的根。
public BinaryNode add(BinaryNode x, String y) {
if(x==null) {
x = new BinaryNode(y,null,null);
return x;
}
if(y.compareTo(x.getVal())<0) {
BinaryNode temp = x.getLeft();
temp = add(x.getLeft(),y);
x.setLeft(x);
}
else if(y.compareTo(x.getVal())>0){
BinaryNode temp = x.getRight();
temp = add(x.getRight(),y);
x.setLeft(x);
}
return x;
}
public void printPostOrder(BinaryNode x) {
if(x!=null) {
System.out.print(x.getVal()+" ");
printPostOrder(x.getRight());
printPostOrder(x.getLeft());
}
}
错误信息 -
at sun.nio.cs.SingleByte.access$000(Unknown Source)
at sun.nio.cs.SingleByte$Encoder.encodeArrayLoop(Unknown Source)
at sun.nio.cs.SingleByte$Encoder.encodeLoop(Unknown Source)
at java.nio.charset.CharsetEncoder.encode(Unknown Source)
at sun.nio.cs.StreamEncoder.implWrite(Unknown Source)
at sun.nio.cs.StreamEncoder.write(Unknown Source)
at java.io.OutputStreamWriter.write(Unknown Source)
at java.io.BufferedWriter.flushBuffer(Unknown Source)
at java.io.PrintStream.write(Unknown Source)
at java.io.PrintStream.print(Unknown Source)
at BinarySearchTree.printPostOrder(BinarySearchTree.java:95)
at BinarySearchTree.printPostOrder(BinarySearchTree.java:97)
最后一行重复多次。 帮助将不胜感激。
【问题讨论】:
-
请添加完整的堆栈跟踪。
-
我试过了,但它说的太长了 68689 个字符
-
如果包含填充树的代码会更容易。
标签: java binary-tree binary-search-tree nodes