数据结构 第六节 第五课

[toc]

二叉树的遍历

树的遍历是树的一种重要的运算. 所谓遍历是指对树中所有节点的信息的访问, 即依次对树中每个结点访问一次且仅访问一次, 我们把这种对所有节点的访问称为遍历 ( traversal ). 那么树的两种重要的遍历模式是深度优先遍历和广度优先遍历. 深度优先一般用递归, 广度优先一般用队列. 一般情况下能用递归实现的算法大部分也能用堆栈来实现.

深度优先遍历

对于一颗二叉树, 深度优先搜索 ( Depth First Search ) 是沿着树的深度遍历树的节点, 尽可能深的搜索树的分支.

那么深度遍历有重要的三种方法. 这三种方式常用于访问树的节点, 它们之间的不同在于访问每个节点的次序不同. 这三种遍历分别叫做先序遍历 ( preorder ), 中序遍历 ( inorder ) 和后序遍历 ( postorder ). 我们来给出它们的详细定义, 然后举例看看它们的应用.

先序遍历

在先序遍历中, 我们先访问根节点, 然后递归使用先序遍历访问左子树, 再递归使用先序遍历访问右子树

根节点 -> 左子树 -> 右子树

中序遍历

在中序遍历中, 我们递归使用中序遍历访问左子树, 然后访问根节点, 最后再递归使用中序遍历访问右子树

左子树 -> 根节点 -> 右子树

后序遍历

在后序遍历中, 我们先递归使用后序遍历访问左子树和右子树, 最后访问根节点

左子树 -> 右子树 -> 根节点

图解:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值