深度 广度 先序 后序 中序 遍历

先序 后序 中序 遍历 是对于二叉树而言的

深度 广度 优先遍历是对树而言的

树广度遍历 java 树的遍历深度和广度_树广度遍历 java

1、 深度优先遍历
1 ,2 ,3,4,5 这五个圆 具有的关系为 1-2 、1-3、 2-4、 2-5
深度优先遍历要求从没有走过的点开始 向下一级搜索,直到下一级没有了子集在回溯到上一级找与之同级的点,再向下搜索,如果没有,回溯到上一级,找与上一级同级的点。
直到所有的点被搜索到为止 。
闷头向前走,不撞南墙不回头,不见深渊不停留。
例如选 1 为起点 深度遍历 1->2->4(回溯 4->2->5)->5(回溯5->2->3->1)->3(回溯3->1)无
答案: 1 2 4 5 3
2、广度优先遍历
广度优先遍历 要求 对起点的所有子级优先进行遍历,然后再对子级的所有子级进行遍历,直到某一级没有子集,而且这一级都已经被遍历。
对于例题 假设起点为1的话
1->2->3->4->5(无)
答案: 1 2 3 4 5

3、二叉树

在计算机科学中,二叉树是每个结点最多有两个子树的树结构。通常子树被称作“左子树”(left subtree)和“右子树”(right subtree)。二叉树常被用于实现二叉查找树和二叉堆。

一棵深度为k,且有2^k-1个结点的二叉树,称为满二叉树。这种树的特点是每一层上的结点数都是最大结点数。而在一棵二叉树中,除最后一层外,若其余层都是满的,并且或者最后一层是满的,或者是在右边缺少连续若干结点,则此二叉树为完全二叉树。具有n个结点的完全二叉树的深度为floor(log2n)+1。深度为k的完全二叉树,至少有2k-1个叶子结点,至多有2k-1个结点。

(摘自 百度百科 https://baike.baidu.com/item/%E4%BA%8C%E5%8F%89%E6%A0%91/1602879?fr=aladdin)

树广度遍历 java 树的遍历深度和广度_树广度遍历 java_02


先序遍历 :

从根节点出发, 根左右,

1->2->4->8->9->10->11->12->13->5->3->6->7

中序遍历 :

从最后一个左子节点出发 ,左根右,

9->8->10->4->12->11->13->2->5->1->6->3->7

后序遍历:

从最后一个左子节点出发 ,左右根,

9->10->8->12->13->11->4->5->2->6->7->3->1