gpt4 book ai didi

java - 从预序位串构建二叉树

转载 作者:行者123 更新时间:2023-11-30 05:03:28 25 4
gpt4 key购买 nike

我正在尝试完成一项作业,但第一步遇到了问题。下面的链接是上下文的分配:

https://docs.google.com/viewer?a=v&pid=explorer&chrome=true&srcid=0B1DkmkmuB-leNDVmMDU0MDgtYmQzNC00OTdkLTgxMDEtZTkxZWQyYjM4OTI1&hl=en

示例输入是:

a0
0
a00
ab000

输出为:

Tree 1:
Invalid!
Tree 2:
height: -1
path length: 0
complete: yes
postorder:
Tree 3:
height: 0
path length: 0
complete: yes
postorder: a
Tree 4:
height: 1
path length: 1
complete: yes
postorder: 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);
}
}
}

我正在尝试测试我是否使用预排序方法正确构建了二叉树,但是每当我运行该程序时,它似乎都陷入了无限循环中的某个地方。谁能帮忙指出是什么原因造成的?我真的走在正确的道路上吗?有人对我应该如何构建这个特定的二叉树有任何提示吗?

谢谢。

最佳答案

它不是无限循环。它只是等待来自 System.in 的输入

关于java - 从预序位串构建二叉树,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5895702/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com