【发布时间】:2017-12-07 01:31:34
【问题描述】:
我用自己的节点从头开始制作了一个二叉搜索树,当我添加节点以及将树打印到控制台时,它可以完美地运行。但是,我有一段时间让 toString 方法工作。
我将toString 方法更改为MakeString,因为我认为在将可比较类型数据转换为字符串时会感到困惑。我可以让方法返回一个节点或仅以对象形式返回,但不能以字符串形式返回整个树。 printInOrder() 方法完美运行,那为什么我的 MakeString() 方法不行呢?
public void printInOrder(){
if (left != null) left.printInOrder();
System.out.println(data);
if (right != null) right.printInOrder();
}
public String MakeString(){
String OrderedTree;
StringBuilder sb = new StringBuilder();
if (data == null) return "Tree is empty";
if (left != null) left.MakeString();
sb.append(data);
if (right != null) right.MakeString();
【问题讨论】:
-
请粘贴整个班级。另外,您没有使用
left.MakeString()的结果。 -
另外,请在这里向我们展示您真正想要的文本输出。无论代码如何,将二叉树打印到控制台都是一种可读的方式,这对我来说似乎是一个挑战。
-
最后一行不见了,但它只是 return sb.toString();
标签: java binary-search-tree tostring