二叉树理论基础

简介: 二叉树理论基础

二叉树理论基础

二叉树的种类

满二叉树、完全二叉树、二叉搜索树、平衡二叉搜索树

二叉树的存储方式

顺序存储、链式存储

二叉树的遍历方式

二叉树主要有两种遍历方式:

  1. 深度优先遍历:先往深走,遇到叶子节点再往回走。
  2. 广度优先遍历:一层一层的去遍历。

那么从深度优先遍历和广度优先遍历进一步拓展,才有如下遍历方式:

  • 深度优先遍历
  • 前序遍历(递归法,迭代法)
  • 中序遍历(递归法,迭代法)
  • 后序遍历(递归法,迭代法)
  • 广度优先遍历
  • 层次遍历(迭代法)

在深度优先遍历中:有三个顺序,前中后序遍历, 有同学总分不清这三个顺序,经常搞混,我这里教大家一个技巧。

这里前中后,其实指的就是中间节点的遍历顺序,只要大家记住 前中后序指的就是中间节点的位置就可以了。

看如下中间节点的顺序,就可以发现,中间节点的顺序就是所谓的遍历方式

  • 前序遍历:中左右
  • 中序遍历:左中右
  • 后序遍历:左右中

二叉树的定义

public class TreeNode {
  int val;
  TreeNode left;
  TreeNode right;
  TreeNode() {}
  TreeNode(int val) {
    this.val = val;
  }
  TreeNode(int val, TreeNode left, TreeNode right) {
    this.val = val;
    this.left = left;
    this.right = right;
  }
}
相关文章
|
2月前
|
存储 C++
第六章 二叉树理论基础
第六章 二叉树理论基础
14 0
第六章 二叉树理论基础
|
2月前
|
存储 算法 编译器
探索二叉搜索树:理论与实践实现
探索二叉搜索树:理论与实践实现
38 0
|
2月前
|
算法 C++
【算法解题思想】动态规划+深度优先搜索(C/C++)
【算法解题思想】动态规划+深度优先搜索(C/C++)
|
4月前
|
机器学习/深度学习 算法 Java
算法设计(动态规划应用实验报告)实现基于贪婪技术思想的Prim算法、Dijkstra算法
这篇文章介绍了基于贪婪技术思想的Prim算法和Dijkstra算法,包括它们的伪代码描述、Java源代码实现、时间效率分析,并展示了算法的测试用例结果,使读者对贪婪技术及其应用有了更深入的理解。
算法设计(动态规划应用实验报告)实现基于贪婪技术思想的Prim算法、Dijkstra算法
|
7月前
|
算法
|
7月前
|
算法
回溯算法思想
回溯算法思想
42 0
|
算法
二叉树的遍历【学习算法】
二叉树的遍历【学习算法】
45 1
|
存储 算法 JavaScript
二叉树理论基础篇
二叉树理论基础篇 二叉树的种类 满二叉树 完全二叉树 二叉搜索树 平衡二叉搜索树 二叉树的存储方式 二叉树的遍历方式 二叉树的定义 总结 其他语言版本
113 0
|
算法
算法设计初步之动态规划
算法设计初步之动态规划
|
存储 算法 Java