二叉树遍历

遍历二叉树指的是按照某种规律依次访问二叉树的每个节点, 对二叉树的遍历过程就是 将非线性结构的二叉树中的节点排列成线性序列的过程。

如果采用线性结构来保存二叉树,程序遍历二叉树将非常容易,无需进行任何思考,直接遍历底层数组即可。如果采用链表来保存二叉树的节点,则有以下两种遍历方式:

1.深度优先遍历

因为二叉树的定义本身就有“递归性”,所以深度优先遍历时能非常方便地利用递归来遍历每个节点:一颗非空二叉树由根、左子树、右子树组成,依次遍历这三部分,就可以遍历整棵二叉树。

非递归算法可借助栈。

1)先序遍历

2)中序遍历

3)后序遍历

2.广度优先(按层)遍历


1.先序遍历

1)访问根节点

2)递归遍历左子树

3)递归遍历右子树

2.中序遍历

1)递归遍历左子树

2)访问根节点

3)递归遍历右子树

3.后序遍历

1)递归遍历左子树

2)递归遍历右子树

3)访问根节点

4.广度优先(按层)遍历 借助队列实现。

1)建一个队列,树的根节点入队

2)从队列中弹出一个节点,然后将该节点的左右节点入队。如果没有子节点说明已经到达叶子节点。

3)重复执行2)直到队列为空


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值