二叉树专题:2.二叉树的遍历

作者: 北方先森丶 | 来源:发表于2017-07-28 15:43 被阅读107次

准备工作

我们在学习二叉树的遍历之前,先继续上一讲的内容,我们来构造一个二叉树,并且打印出来!

将下图中的二叉树打印出来。

在我们的二叉树类(上一讲中的二叉树类中阿)中,创建一个新的函数:打印二叉树。我们打印的效果是横向打印,也就是将二叉树逆时针旋转90°,因此需要我们动一下脑筋~

我们构建好了二叉树,就要传值了,所以我们在二叉树类中创建一个新的函数:获取二叉树的结点,将传进来的结点数据元素存储在我们的二叉树中。

接下来我们就可以构造我们的二叉树了!

我们建立一个测试类,写一个返回值为BiTreeNode的构造树方法,我们的传值是由下往上的顺序,先将结点的左右子树创建出来,再讲左右指针赋给结点,以此类推,很好理解的~

打印的效果~

打印类

很简单,就是为了打印空格

二叉树的遍历:前中后

前序遍历(DLR)递归算法为:

若二叉树为空则算法结束;否则:

(1)访问根结点;

(2)前序遍历根结点的左子树;

(3)前序遍历根结点的右子树。

中序遍历(LDR)递归算法为:

若二叉树为空则算法结束;否则:

(1)中序遍历根结点的左子树;

(2)访问根结点;

(3)中序遍历根结点的右子树。

后序遍历(LRD)递归算法为:

若二叉树为空则算法结束;否则:

(1)后序遍历根结点的左子树;

(2)后序遍历根结点的右子树;

(3)访问根结点。

根据前序中序后序遍历的特点,我们通过调用二叉树类的获取根结点,左子树和右子树的函数,来实现代码。

二叉树的遍历:层序遍历

前序中序后序遍历都很简单,大家肯定都会~哈哈,真正需要考察的还是层序遍历,我们废话少说,言归正传。

除前序、中序和后序遍历算法外,二叉树还有层序遍历。层序遍历的要求是:按二叉树的层序次序(即从根结点层至叶结点层),同一层中按先左子树再右子树的次序遍历二叉树。

写了这么多,我满看一下输出方法以及结果~

打印结果!

查找数据元素

依然回到我们的二叉树类中(BiTree),依然创建一个查找静态方法,方便调用。

测试类中代码

总结

二叉树的问题一直是面试笔试的高频题,大家要好好复习,作为重点!

下一讲,我们讲解二叉树的游标遍历算法~敬请期待!

PS:有什么问题或者不解的地方可以评论,我都会一一就行回复的,如果有错误或者言语不明的地方,还请大神多多指点!

相关文章

  • 二叉树的前中后序遍历 Java递归与非递归实现

    1. 二叉树的定义 构造二叉树 2. 二叉树的递归遍历 2.1 二叉树递归先序遍历 2.2 二叉树递归中序遍历 2...

  • 算法精选题总结之二叉树类

    1.二叉树的中序遍历中序遍历的迭代方法中序遍历的递归方法2.二叉树前序遍历3.二叉树后续遍历4.二叉树的最近公共祖...

  • 3.有关二叉树的算法

    1.分层遍历二叉树:宽度优先遍历 2.分层遍历应用,按层打印二叉树 3.前序遍历二叉树 4.前序遍历,迭代 5.中...

  • 二叉树递归非递归遍历算法整理

    一、二叉树前序遍历 1 前序递归遍历 2.前序非递归遍历 一、二叉树中序遍历 2.中序递归遍历 1.中序非递归遍历...

  • 二叉树 基础操作

    二叉树的使用 二叉树结构 先序创建二叉树 DFS 先序遍历二叉树 中序遍历二叉树 后序遍历二叉树 BFS 层次遍历...

  • 05-30:二叉树专题

    二叉树专题常见题型 1、二叉树的遍历 前、中、后:递归 层序、之字:bfs 2、二叉树的深度 (1)二叉树的深度 ...

  • 二叉树遍历

    二叉树 二叉树的存储结构 前序遍历 中序遍历 后序遍历 遍历代码 反转二叉树 深入学习二叉树 二叉树-你必须要懂!...

  • 二叉树

    1.二叉树的遍历:前序、中序、后序遍历 2.二叉树查找节点和删除节点的代码

  • 关于二叉树的算法题

    前序遍历中序遍历后序遍历判断是否是平衡二叉树判断是否是对称二叉树判断二叉树高度按照层遍历二叉树判断二叉树宽度

  • 数据结构与算法二叉树的遍历与线索二叉树以及森林

    1.二叉树的遍历先序遍历、中序遍历、后序遍历 2.层次遍历利用队列实现 3.由遍历序列构成二叉树先序、后序可以与众...

网友评论

    本文标题:二叉树专题:2.二叉树的遍历

    本文链接:https://www.haomeiwen.com/subject/zryzkxtx.html