一、树的概念
树是一种逻辑结构,是n(n>=0)个节点的有限集合,n=0时,称为空树,而任意的非空树满足:
1) 有且仅有一个特定的称为根的节点
2) 当n> 1时,其余结点可分为m (m>0)个互不相交的有限集合,其中每一个集合本身又是一棵树,称为根结点的子树。
基本术语:
森林是m(m>=0)棵互不相交的树的集合
二、树的性质
- 树的结点数 = 所有节点的度数+1 = 边数 + 1
- 度为m的树中第 i 层至多有 m^(i-1)个节点
- 具有n个结点的m叉树的最小高度为⌈log m( n(m-1)+1) ⌉
三、二叉树
二叉树是n (n≥0) 个结点的有限集合。
- n=0时,二叉树为空;
- n>0时,由根结点和两个互不相交的被称为根的左子树和右子树组成。左子树和右子树也分别是一棵二叉树。
3.1 特殊二叉树
- 满二叉树:一棵高度为h,且含有2^h - 1个结点的二叉树为满二叉树。
- 完全二叉树:设一个高度为h、有n个结点的二叉树,当且仅当其每个结点都与高度为
h的满二叉树中编号1 ~n的结点一一对应时, 称为完全二叉树。
-
二叉排序树:一棵二叉树,若树非空则具有如下性质:对任意结点若存在左子树或右子树,则其左子树上所有结点的关键字均小于该结点,右子树上所有结点的关键字均大于该结点。
-
平衡二叉树:树上任意结点的左子树和右子树的深度只差不超过1。
3.2 二叉树的性质
- 非空二叉树的 叶子节点数 = 度为2的节点数+1,即 n0 = n2 + 1
- 非空二叉树的第k层至多有2^(k-1)个节点
- 高度为h的二叉树至多有2^h - 1 个节点