迭代k-ary树前后遍历

时间:2014-07-05 18:01:33

标签: algorithm tree iteration

我有一个k-ary树,我想用迭代遍历它。

这是一个场景图,所以每次遇到变换节点时,我都会将其矩阵放在堆栈上,每次遇到网格节点时,都会使用矩阵堆栈进行渲染。这两者都必须预先订购。 但是当处理变换节点的所有子节点时,必须从矩阵堆栈中弹出其矩阵。所以我还需要一个订购后的操作。

我找到了迭代后序遍历的一些算法,但总是用于二叉树而没有额外的预订操作。

1 个答案:

答案 0 :(得分:0)

这是未经测试的,所以请小心对待。

解决此问题的基本思想是在首次遇到节点时将节点标记为已访问。然后将所有孩子放在堆叠上。

如果遇到没有子节点的叶子节点,可以保存打印/处理并从堆栈中弹出。

当已经访问了堆栈上的下一个节点时,必须先处理所有子节点,否则堆栈将不会被清除。 我们现在知道具有任意数量子节点的临时节点可以按顺序处理。