python二叉树的四种遍历分别是什么,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
数据结构是怎么遍历的呢,二叉树的遍历都是从根节点出发,按照某种次序进行整棵树的遍历,根据次序区分为四种方式,分别是前序,中序,后序,层序。关于这几种排序有个流传很久的口诀:
前序遍历:根结点 ---> 左子树 ---> 右子树
中序遍历:左子树---> 根结点 ---> 右子树
后序遍历:左子树 ---> 右子树 ---> 根结点
层次遍历:仅仅需按层次遍历就可以
下面,我们就来讲解一下这些口诀:
我们先画一颗简单的二叉树
以上述二叉树进行讲解:
前序
前序遍历口诀是:根结点 ---> 左子树 ---> 右子树。意思是先遍历根节点A,然后是左子树B,但是B也有左子树,此时把B再当成根,下一步应该是根B的左子树C-右子树D。由于C节点跟D节点自身就是叶子节点,他们没有子节点,此时,根节点A的整个左子树B全部子孙节点已经遍历完毕,接下来,我们再来遍历根节点A的右子树E,再将E当成根节点,根E没有左节点,只有右节点F,此时,整棵树遍历完毕,最后的遍历顺序为A-B-C-D-E-F。
中序
中序遍历口诀是:左子树---> 根结点 ---> 右子树。中序的逻辑有些奇怪,他是从整棵树的最左叶子节点开始,也就是上图的C节点,找到C节点的根节点,也就是B节点,然后再找到B节点的右节点D节点,此时根节点A的整颗左子树已经遍历完毕,根据上述口诀,再遍历根节点A,根节点A有一颗右子树节点E,此时,如果E有左子树应该先遍历E的左子树,从E的最左叶子节点开始,但是E此时没有左子树,那么我们接下来应该遍历根节点E,E下面有一个右叶子节点F,最后遍历F,至此,整个数据结构遍历完成,遍历顺序为C-B-D-A-E-F。
后序
后序遍历口诀是:
左子树 ---> 右子树 ---> 根结点。
意思就是最后 遍历根节点A,其实根据上面中序的遍历方式,我们应该就已经可以得出结论了,先从最左叶子节点C开始,左叶子节点C-C的根节点B-B的右节点D,下一步我们来进行整棵树右子树遍历,从左叶子节点开始,没有左叶子节点,那么就是右叶子节点F,F的根节点是E,最后遍历整棵树的根节点A,遍历顺序为C-B-D-F-E-A。
层序
层序遍历,顾名思义,也就是一层层遍历,根据从左至右,从上至下的顺序进行。遍历顺序为A-B-E-C-D-F。
关于python二叉树的四种遍历分别是什么问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注亿速云行业资讯频道了解更多相关知识。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。