首页 > 编程知识 正文

二叉树的遍历算法图解,二叉树的三种遍历例题

时间:2023-05-03 08:20:45 阅读:154820 作者:4800

01 二叉树的前序遍历回顾

据了解,二叉树有三种节点:父节点、左子节点和右子节点。 先行遍历意味着首先遍历父节点,然后遍历左子节点、右子节点。

补充:中继和继承遍历都是对父节点的说法,父节点中途遍历,父节点最后遍历。 左右孩子节点的方便顺序大致没有变化。

02 图解遍历过程

如果您知道上一个遍历过程,可以跳过此部分。

(1)如下图所示,遍历节点0

)2)如下图所示,遍历0的左子节点

)3)如下图所示,遍历1的左子节点

)4)如下图所示,遍历1的右边子节点

现在,所有0的左孩子都完成了遍历,并开始遍历0的右孩子节点。

)5)遍历0的右子节点整体的根节点2

)6)遍历整个2的左子节点,首先遍历5,然后遍历5的左子节点7,结束2的左子节点

)7)然后遍历2的右子级

扫描结果: 0、1、3、4、2、5、7、6

03 图解循环实现前序遍历

先行遍历由2部分组成,1个循环遍历左侧的子节点。 另一个人把右边孩子的节点放进堆栈里。

(1)如下图所示,从根节点开始,将此分支的所有左子节点扫描到最后。 被收纳在堆栈中的2个右边的子节点分别为2、4

2 )如下图所示,将4从堆栈中取出,输出4。 (如果节点没有左子节点,则开始检查堆栈中是否存在元素,如果存在,则离开堆栈,继续遍历左子节点,并堆栈右子节点) )。

4没有左儿童节点,也没有右儿童节点,不需要额外的操作

)3)如下图所示,弹出堆栈内的要素2并输出。 将2右边的子节点6放入堆栈中。

)4) 2巡视哪个分支的左侧子节点,2、5、7,直到左侧子节点为空。

)弹出堆栈中元素6的输出,6左右没有子节点,没有其他操作,堆栈为空,且6的左边的子节点为空,结束循环

04 代码实现

05 总结

要理解该操作,需要用两个节点巡视左子节点、右子节点。 弹出堆栈元素并返回循环遍历左侧的子节点

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。