java - 三叉树的前序遍历

标签 java tree-traversal preorder ternary-tree

我需要执行三叉树的前序遍历。我很熟悉二叉树上的这种遍历,例如:

public void preorder(){

   System.out.println(data); 
   if (left != null)
      left.preorder();
   if (right != null)
      right.preorder();
}

按照 Root、Left、Right 的顺序遍历。我对如何添加中间子节点感到困惑。如果有人能解释这一点那就太好了。谢谢

最佳答案

n叉树的一般前序遍历如下:

  • 遍历节点本身
  • 如果存在,则遍历child0
  • 如果存在,则遍历child1
  • ...
  • 如果存在,则遍历childn

二叉树恰好只有child0(左)和child1(右),但三叉树也有一个中间。所以你的遍历在遍历左子树和右子树之间会有一个额外的语句:

if (middle != null)
    middle.preorder();

关于java - 三叉树的前序遍历,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38800154/

相关文章:

java - 使用 editText Activity 更改按钮可见性 onClick

jquery - jQuery 树遍历的最佳方法?

algorithm - 二叉树上的预序遍历和深度优先搜索一样吗?

linked-list - 将 BST 转换为前序链表和后序链表

java - 有人可以解释这个程序的控制流程吗?

java - 如何使用 SOAP 向 java 中的 webservice 发送 XML 请求?

java - 我们如何通过 REST Web 服务将 json 导出为文件?

c - 前序树遍历有效但后序无效

java - Java中的树遍历

inorder - 订购前和订购后名称