姓名:吕彬 学号:16130140354
【嵌牛导读】最近学习数据结构二叉树部分,对其饶有兴趣,我们一起来看下二叉树的三种遍历方式的递归算法。
【嵌牛鼻子】二叉树是每个结点最多有两个子树的有序树。通常子树的根被称作“左子树”(left subtree)和“右子树”(right subtree)。二叉树常被用作二叉查找树和二叉堆或是二叉排序树。二叉树的每个结点至多只有二棵子树(不存在度大于2的结点),二叉树的子树有左右之分,次序不能颠倒。二叉树的第i层至多有2的 i -1次方个结点;深度为k的二叉树至多有2^(k) -1个结点;对任何一棵二叉树T,如果其终端结点数(即叶子结点数)为n0,度为2的结点数为n2,则n0 = n2 + 1。
【嵌牛提问】递归算法如何实现?
【嵌牛正文】二叉树的遍历:遍历是对树的一种最基本的运算,所谓遍历二叉树,就是按一定的规则和顺序走遍二叉树的所有结点,使每一个结点都被访问一次,而且只被访问一次。由于二叉树是非线性结构,因此,树的遍历实质上是将二叉树的各个结点转换成为一个线性序列来表示。
二叉树的三种递归的遍历方法:(源代码截图如下)
先序遍历:
中序遍历:
后序遍历: