二叉树(一)

何为二叉树?

二叉树是结点的又穷集合,这个集合能够是空集,能够只有一个根结点,还能够是两棵不相交的二叉树,在二叉树中须要区分左子树和右子树。linux

二叉树特色

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

二叉树的五种形态

image

二叉树的性质

  • 1.非空二叉树中第i层至多有 2^i 个结点。
  • 2.高度为 h 的二叉树至多有 2^(h+1) - 1个结点。

满二叉树

  • 1.若是二叉树中全部分支结点的度数都为2,则该树为满二叉树。
  • 2.满二叉树的叶结点比分支结点多一个

彻底二叉树

  • 1.假设二叉树高度为h,若是第0层到第h-1层的结点都满,最下一层的结点不满,而全部结点在最左侧连续排列,空位在右边,则该树为彻底二叉树。 image

经常使用

二叉树可做为 DFS和BFS两种搜索算法的基础数据结构,由于二叉树是一种递归的结构,在搜索算法中假设某种状态可选可不选时可抽象为二叉树,可是这种递归操做必须结合 回溯和 剪枝技巧保证算法的时间复杂度。 树形结构在计算机领域应用普遍,好比 linux 文件系统,MySQL数据库索引等。算法

预告

掌握二叉树可从如下几个方面入手:数据库

  • 1.二叉树的特性
  • 2.二叉树实现
  • 3.二叉树搜索
  • 4.二叉树算法 leetcode
相关文章
相关标签/搜索