【问题标题】:Tree traversal, reading the code树遍历,阅读代码
【发布时间】: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


【解决方案1】:

简单的代码如下:

有预购

找到一个更长的代码,我很困惑,

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

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

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

【讨论】:

  • 添加了树在论文中的外观,以及我发现的有关此示例的一些其他信息。
  • 如果您不了解这种格式是如何获得的,那么您似乎对如何构建树而不是遍历树感到困惑
  • 是的,可能是这样,最近才开始研究树遍历。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-03-10
  • 1970-01-01
  • 2014-10-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-10
相关资源
最近更新 更多