Python版算法专题--二叉树的深度优先遍历

Posted 光荣之路

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python版算法专题--二叉树的深度优先遍历相关的知识,希望对你有一定的参考价值。

吴老的《selenium webdriver 实战宝典》出版了!

二叉树作为一种数据结构,其应用场景非常多,具体的有:用于数据的检索,数据管理,在游戏领域,可以用于场景的划分等。

Python版算法专题--二叉树的深度优先遍历


 

二叉树的遍历,分为深度优先遍历,以及广度优先遍历。在深度优先遍历中,具体分为如下三种:

先序遍历:先访问根节点,再遍历左子树,再遍历右子树;

中序遍历:先遍历左子树,再访问根节点,再遍历右子树;

后序遍历:先遍历左子树,再遍历右子树,再访问根节点

对于上图的二叉树,其先序遍历结果是:50,20,15,30,60,70;其中序遍历结果是:15,20,30,50,60,70;其后序遍历结果是:153020,70,60,50

下面,进入我们的代码实现:

首先,定义二叉树中的节点:

Python版算法专题--二叉树的深度优先遍历


定义二叉树类:

Python版算法专题--二叉树的深度优先遍历


递归实现的先序遍历算法如下:

Python版算法专题--二叉树的深度优先遍历


递归实现的中序遍历算法如下:

Python版算法专题--二叉树的深度优先遍历


递归实现的后序遍历算法如下:

Python版算法专题--二叉树的深度优先遍历


我们使用如下的二叉树,做算法的验证:

Python版算法专题--二叉树的深度优先遍历

Python版算法专题--二叉树的深度优先遍历


测试结果如下:



安装喜马拉雅app,搜索“光荣之路”可以收听吴老和他的朋友们分享的35小时测试知识语音

光荣之路软件测试培训




光荣之路公开课大讲堂:413908278


以上是关于Python版算法专题--二叉树的深度优先遍历的主要内容,如果未能解决你的问题,请参考以下文章

采用邻接表存储的图的深度优先遍历算法类似于二叉树的先序遍历,为啥是先序呢?

Python算法系列—深度优先遍历算法

算法基础:二叉树的遍历

讲透学烂二叉树:二叉树的遍历图解算法步骤及JS代码

算法二叉树相关算法

二叉树算法—广度搜索算法使用以及变形