我正在尝试做一项任务,但我在第一步遇到问题。下面的链接是用于上下文中的分配:从预置位bitstring构建二叉树
样品输入是:
A0
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);
}
}
}
我想测试我正确地建立二叉树的前序的方法,但每当我运行它,它似乎被卡在某处的无限循环中。任何人都可以帮忙指出是什么造成的?我是否真的在这个正确的轨道上?有没有人对我应该如何去构建这个特定的二叉树有任何提示?
谢谢。
您的代码非常混乱 - 请尝试先将它整理出来。 insert()方法 - 为什么只有当它被覆盖时节点才是参数?将整数零转换为char?你的意思是'0'? – 2011-05-05 10:03:25
不要删除你的问题 - “没关系,坏问题,谢谢你的答案。”应该是一个评论 – 2011-05-05 10:58:06