【发布时间】:2017-06-16 20:38:08
【问题描述】:
我正在查找树遍历,到目前为止我没有任何问题理解它,这意味着预排序、中序、后序。简单的代码如下:
sub P(TreeNode)
Output(TreeNode.value)
If LeftPointer(TreeNode) != NULL Then
P(TreeNode.LeftNode)
If RightPointer(TreeNode) != NULL Then
P(TreeNode.RightNode)
end sub
我发现了一个更长的代码,我很困惑,输出会是什么?
public class My {
public static void print(Node n){
if(n != null) {
System.out.print(n.info +"");
print(n.left);
print(n.right);
}
}
public static void print2(Node n){
if(n != null) {
print2(n.left);
System.out.print(n.info +"");
print2(n.right);
}
}
public static void print3(Node n){
if(n != null) {
print3(n.left);
print3(n.right);
System.out.print(n.info +"");
}
}
public static void main(String[] args) {
Tree t = new Tree();
t.createTree();
print(t.root);
System.out.println();
print2(t.root);
System.out.println();
print3(t.root);
}
}
所以我更容易理解让我们说输入是 10,-10,12,8,21,34
输出会是什么样子?因为如果我理解正确,那么就有 3 个(预购、中购、后购)。
树看起来像:
10
-10 12
8 21 34
原来这是我的一所学校的考试,他们必须在试卷上给出答案,这就是他们获得的所有信息。没有人告诉他们这棵树的样子。
【问题讨论】:
-
我们看不到你的 Tree 或 Node 类,所以这不会打印任何东西......你应该在调试器中运行你的代码
-
@cricket_007 对,脑残时刻,对不起
标签: java tree-traversal