非二叉树的有序树遍历

时间:2014-05-21 08:57:23

标签: tree tree-traversal

术语" inorder遍历"对于比二叉树更宽的树,或者是" pre - "具有明确定义的含义。和"发布 - "订购唯一有意义的DFS类型?我的意思是每个节点有n> 2个孩子 我想n即使它可能意味着要进入' root'在n/2个孩子之后,这个曾经被这样使用过吗?那奇怪的是n

1 个答案:

答案 0 :(得分:6)

只有在将子集明确划分为左子项和右子项时,才会继续很好地定义inorder遍历。

要看到这一点,请注意,如果我们展平树,则inorder遍历实际上按照它们将出现的顺序枚举节点(或者等效地,如果我们注视,节点将出现的顺序在从左边开始的树上。)

因此,对于n-ary树,您将首先处理左子集,然后处理父集和右子集。

例如,请考虑以下树:enter image description here

如果我们将左子节点集合定义为左侧的前2个子节点,将右子节点集合定义为单个最后节点,我们将在遍历中获得以下内容:

  14,15,5,16,17,18,6,19,2,20,21,7,8,9,3,10,1,11,12,4,   13

选择左右儿童组的方法取决于手头的问题。