数据结构学习笔记⑥·树
树2019.3.13
参考资料:数据结构与算法,解学武,http://data.biancheng.net/
个人记录重要的笔记,非全原创,有copy部分。
基本知识
- 一对多的关系
- 树是由根结点和若干棵子树构成的。
一些定义
- 父结点(双亲结点)、子结点和兄弟结点
- 根结点:每一个非空树都有且只有一个被称为根的结点。
树根的 判断依据为:如果一个结点没有父结点,那么这个结点就是整棵树的根结点。 - 叶子结点:如果结点没有任何子结点,那么此结点称为叶子结点(叶结点)
- 空树:如果集合本身为空,那么构成的树就被称为空树。空树中没有结点。
- 子树:略
- 度(深度、高度):对于一个结点,拥有的子树数(结点有多少分支)
- 层次:树根为第一层,根的子节点为第二层,以此类推。
一棵树的深度(高度)是树中结点所在的最大的层次。 - 森林:由 m(m >= 0)个互不相交的树组成的集合。
树的几种表示形式:
- 树最常用的表示方法是使用广义表的方式
二叉树
性质:
- 二叉树中,第 i 层最多有 2i-1 个结点。
- 如果二叉树的深度为 K,那么此二叉树最多有 2K-1 个结点。
- 二叉树中,终端结点数(叶子结点数)为 n0,度为 2 的结点数为 n2,则 n0=n2+1。
满二叉树
- 如果二叉树中除了叶子结点,每个结点的度都为 2。
- 通俗地说 每层都是满的,没有缺。
满二叉树特性
- 满二叉树中第 i 层的节点数为 2n-1 个。
- 深度为 k 的满二叉树必有 2k-1 个节点 ,叶子数为 2k-1。
- 满二叉树中不存在度为 1 的节点,每一个分支点中都两棵深度相同的子树,且叶子节点都在最底层。
- 具有 n 个节点的满二叉树的深度为 log2(n+1)。
完全二叉树
除去最后一层以外每一层都是满的,且最后一层的结点依次从左到右分布。
完全二叉树特性
- n 个结点的完全二叉树的深度为 ⌊log2n⌋+1。
- 对于任意一个结点 i ,当 i>1 时,父亲结点为结点 [i/2] 。(i=1 时,表示的是根结点,无父亲结点)
- 如果 2*i>n