美文网首页
二叉树的遍历

二叉树的遍历

作者: zx_tree | 来源:发表于2017-12-26 16:20 被阅读0次

1.二叉树的结构

节点定义如下:

2.二叉树的遍历方法

2.1 广度优先搜索(Breadth First Search),又叫宽度优先搜索或横向优先搜索,是从根结点开始沿着树的宽度搜索遍历,也就是一层一层的遍历,上面二叉树的遍历顺序为:root  -- la --ra --lalb --larb --ralb --rarb

        可以利用队列实现广度优先搜索。代码实现如下:

注:上面用到了队列的offer和poll方法,这里简单记录下这两个方法和以前方法的区别:

(1)offer,add区别:

一些队列有大小限制,因此如果想在一个满的队列中加入一个新项,多出的项就会被拒绝。

这时新的 offer 方法就可以起作用了。它不是对调用 add() 方法抛出一个 unchecked 异常,而只是得到由 offer() 返回的 false。 

(2)poll,remove区别:

remove() 和 poll() 方法都是从队列中删除第一个元素。remove() 的行为与 Collection 接口的版本相似,

但是新的 poll() 方法在用空集合调用时不是抛出异常,只是返回 null。因此新的方法更适合容易出现异常条件的情况。

(3)peek,element区别:

element() 和 peek() 用于在队列的头部查询元素。element()与 remove() 方法类似,在队列为空时, element() 抛出一个异常,而 peek() 返回 null

2.2深度优先遍历

深度遍历使用栈数据结构,实现栈的数据结构的容器有Stack和LinkedList,此处使用LinkedList

2.2.1先序遍历:先遍历根节点,然后再遍历左节点和右节点:上面二叉树的遍历结果为

root--la--lalb--larb--ra--ralb--rarb

实现算法如下(递归)

实现算法如下(非递归)

前序遍历比较简单,步骤是先将根结点入栈,然后出栈,并再将根结点右子结点入栈,最后左子结点入栈,依次轮回达到出栈的顺序是:根-左-右

(1)

(2)

2.2.2:中序遍历:先遍历底部左节点,然后是根节点,最后是右节点,上面二叉树的遍历结果是

lalb--la--larb--root--ralb--ra--rarb

实现算法如下(递归)

实现算法如下(非递归)

(1)

(2)

2.2.3:后序遍历:先遍历底

点,上面二叉树的遍历结果是

lalb--larb--la--ralb--rarb--ra--root

实现算法如下(递归)

非递归方式实现

相关文章

  • 二叉树 基础操作

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

  • 二叉树遍历

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

  • 二叉树操作

    树节点 逐行顺序解析二叉树 前序遍历二叉树 中序遍历二叉树 后序遍历二叉树 删除指定数值的节点 前序遍历顺序存储的...

  • 关于二叉树的算法题

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

  • 二叉树三种遍历Swift代码实现

    二叉树的三种遍历 二叉树 前序遍历 中序遍历 后序遍历 另外 不得不说,得到二叉树的前序遍历和中序遍历的结果或者后...

  • 数据结构与算法之二叉树遍历(七)

    目录 前序遍历中序遍历后序遍历层序遍历遍历方式的选择条件根据遍历结果重构二叉树翻转二叉树计算二叉树的高度判断一棵树...

  • 二叉树的遍历

    二叉树的遍历 二叉树遍历 分为前序遍历、中序遍历和后序遍历。 前序遍历 (DLR) 先访问根节点,然后前序遍历左子...

  • 数据结构:树的实现和遍历(c++)

    (一)二叉树的遍历——递归实现 二叉树常见的遍历方式分为前序遍历、中序遍历和后序遍历。 1 前序遍历 前序遍历也叫...

  • 二叉树的蛇形层次遍历(LeetCode.103)

    题目 解析 首先参考二叉树的层次遍历层次遍历二叉树(LeetCode--102二叉树的层次遍历)[https://...

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

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

网友评论

      本文标题:二叉树的遍历

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