美文网首页
非递归的遍历方式

非递归的遍历方式

作者: Two口吃成大胖子 | 来源:发表于2017-10-20 22:55 被阅读0次

    现在有一颗二叉树

    我们将每个节点看做一个根节点,并对其进行前序遍历,可以得到

    ABC       BDE      D       E      CF     F

    可以发现,每个节点都出现了两次,可以认为是相邻节点,我们按照顺序进行组合,比如ABC和BDE,因为DE是以B为根节点遍历出来的,所以优先和B组合,就可以得到ABDEC,将只有一个节点的排除,那么我们得到ABDECF这就是前序遍历。

    如果我们对其进行中序遍历,可以得到

    BAC     DBE      D      E      CF     F

    同样的组合,可以得到DBEACF。

    其实这个规律,是参考局部的排序能够保证整体的排序方式,所以我们需要对每个节点进行相应的遍历操作(进行入栈),当第二次遇到该节点,就可以入队列了。

    相关文章

      网友评论

          本文标题:非递归的遍历方式

          本文链接:https://www.haomeiwen.com/subject/ergiwttx.html