树遍历,阅读代码

时间:2017-06-16 11:47:01

标签: java tree-traversal

我正在查找树遍历,到目前为止,我没有理解它,这意味着预订,有序,后期订单。简单的代码如:

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

原来这是我的一所学校的考试,他们必须给答案一张纸,这就是他们获得的所有信息。没有人告诉他们树的样子。

1 个答案:

答案 0 :(得分:0)

  

简单的代码如:

有预订

  

发现代码更长,我感到困惑,

它只会更长,因为你有所有的遍历

  

输入是10,-10,12,8,21,34输出会是什么样的?

如果不知道实际的树是什么样的,那么没有人可以回答这个问题(可以输出任何可能的遍历数字列表)。获得该信息后,请自行运行代码(最好是插入调试器)并查看它是什么