术语" inorder遍历"对于比二叉树更宽的树,或者是" pre - "具有明确定义的含义。和"发布 - "订购唯一有意义的DFS类型?我的意思是每个节点有n
> 2个孩子
我想n
即使它可能意味着要进入' root'在n/2
个孩子之后,这个曾经被这样使用过吗?那奇怪的是n
?
答案 0 :(得分:6)
只有在将子集明确划分为左子项和右子项时,才会继续很好地定义inorder遍历。
要看到这一点,请注意,如果我们展平树,则inorder遍历实际上按照它们将出现的顺序枚举节点(或者等效地,如果我们注视,节点将出现的顺序在从左边开始的树上。)
因此,对于n-ary
树,您将首先处理左子集,然后处理父集和右子集。
例如,请考虑以下树:
如果我们将左子节点集合定义为左侧的前2个子节点,将右子节点集合定义为单个最后节点,我们将在遍历中获得以下内容:
14,15,5,16,17,18,6,19,2,20,21,7,8,9,3,10,1,11,12,4, 13
选择左右儿童组的方法取决于手头的问题。