我正在尝试完成一项任务,但第一步遇到了麻烦。下面的链接是上下文的分配:
示例输入是:
a0
0 a00
ab000
这给出了以下输出:
树 1:
无效!
树 2:
高度:-1
路径长度:0
完成:是
后排序:
树 3:
高度:0
路径长度:0
完成:是
后排序:a
树 4:
高度:1
路径长度:1
完成:是
后排序:ba
我无法在作业上取得进展,因为我一直坚持从输入实际构建二叉树。到目前为止,我能够提出的代码如下:
public class btsmall {
int k = 0;
char[] cArray;
public static void main(String[] args) throws IOException {
new btsmall().run();
}
static class Node {
Node left;
Node right;
char value;
public Node(char value) {
this.value = value;
}
}
public void run() throws IOException {
String preorder;
InputStreamReader input = new InputStreamReader(System.in);
BufferedReader reader = new BufferedReader(input);
while ((preorder = reader.readLine()) != null) {
cArray = preorder.toCharArray();
Node tree = null;
insert(tree);
preorder(tree);
k = 0;
}
}
public void insert(Node node) {
if (cArray[k] == (char) 0) {
node = new Node((char) 0);
node.left = node.right = null;
k++;
} else {
node = new Node(cArray[k]);
k++;
insert(node.left);
insert(node.right);
}
}
public void preorder(Node node) {
if (node != null) {
System.out.println(node.value + " ");
preorder(node.left);
preorder(node.right);
}
}
}
我正在尝试测试我是否使用预排序方法正确构建了二叉树,但是每当我运行程序时,它似乎都卡在某个地方的无限循环中。谁能帮忙指出是什么原因造成的?我真的在正确的轨道上吗?有人对我应该如何构建这个特定的二叉树有任何提示吗?
谢谢。