二叉树的深度优先遍历和广度优先遍历

本文详细介绍了二叉树的深度优先遍历(包括先序、中序、后序)和广度优先遍历的原理。深度优先遍历采用栈实现,先访问根节点,然后按顺序访问子节点。广度优先遍历采用队列实现,逐层从左到右访问节点。并以具体实例展示了遍历过程。
摘要由CSDN通过智能技术生成

深度优先遍历:对每一个可能的分支路径深入到不能再深入为止,而且每个结点只能访问一次。(可细分为先序遍历,中序遍历和后序遍历),通常采用栈(堆)实现。

广度优先遍历:又叫层序遍历,从上往下对每一层依次访问,在每一层中,从左往右(也可以从右往左)访问结点,访问完一层就进入下一层,直到没有结点可以访问为止。通产采用队列实现。

实例说明:
在这里插入图片描述
如图为一棵二叉树
深度优先遍历的顺序为:(由左至右)
A——>B——>D——>E——>H——>C——>F——>G——>I

实现步骤:

①A结点入栈;
②A结点出栈,A结点的子节点进栈(如果先遍历左节点,则右结点先入栈,反之左节点先入栈)。假设此时右节点先入栈,则先push©,再push(B),出栈时则B先出,C后出。
③B出栈,B结点的字结点进栈,同步骤②,先push(E),再push(D)。
在这里插入图片描述
④D出栈,此时D没有子结点,就不用执行进栈操

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值