何为二叉树?
二叉树是结点的又穷集合,这个集合能够是空集,能够只有一个根结点,还能够是两棵不相交的二叉树,在二叉树中须要区分左子树和右子树。linux
二叉树特色
- 1.二叉树中至多关联连个后继结点,关联的后继结点分左右。
- 2.二叉树是一种递归结构。
- 3.对于非空二叉树,其结点集合非空,至少包含一个根结点,其子树能够为空。
- 4.空树:不包含任何结点的二叉树。
- 5.单点树:只包含一个结点(根结点)的二叉树。
- 6.兄弟结点:父结点相同的两个结点互为兄弟结点。
- 7.树叶结点:不包含子结点的结点。
- 8.分支结点:包含子结点(左右结点或只有一个子结点)的结点。
- 9.度:一个结点的子结点的个数称为该结点的度数。二叉树中节点的度为0,1,2。
- 10.层:二叉树根的层数为0,从根结点到任意一个结点的路径长为该结点的层数。
- 11.高度/深度:树中结点的最大层数为该树的高度。单点树的高度为0。
二叉树的五种形态

二叉树的性质
- 1.非空二叉树中第i层至多有 2^i 个结点。
- 2.高度为 h 的二叉树至多有 2^(h+1) - 1个结点。
满二叉树
- 1.若是二叉树中全部分支结点的度数都为2,则该树为满二叉树。
- 2.满二叉树的叶结点比分支结点多一个
彻底二叉树
- 1.假设二叉树高度为h,若是第0层到第h-1层的结点都满,最下一层的结点不满,而全部结点在最左侧连续排列,空位在右边,则该树为彻底二叉树。

经常使用
二叉树可做为 DFS和BFS两种搜索算法的基础数据结构,由于二叉树是一种递归的结构,在搜索算法中假设某种状态可选可不选时可抽象为二叉树,可是这种递归操做必须结合 回溯和 剪枝技巧保证算法的时间复杂度。 树形结构在计算机领域应用普遍,好比 linux 文件系统,MySQL数据库索引等。算法
预告
掌握二叉树可从如下几个方面入手:数据库
- 1.二叉树的特性
- 2.二叉树实现
- 3.二叉树搜索
- 4.二叉树算法 leetcode