目录
一、满二叉树
一棵二叉树的结点要么是叶子结点,要么它有两个子结点(如果一个二叉树的层数为K,且结点总数是(2^k) -1,则它就是满二叉树。)
- 假设满二叉树的高度为
(
),那么
- 第
层的节点数量为:
- 叶子节点数量为:
- 总节点数量
,
,
,
的底为2.
- 在同样高度的二叉树中,满二叉树的叶子节点数量最多,总节点数量最多
二、完全二叉树
若设二叉树的深度为k,除第 k 层外,其它各层 (1~k-1) 的结点数都达到最大个数,第k 层所有的结点都连续集中在最左边,这就是完全二叉树。
- 一棵有n个节点的完全二叉树(n>0),从上到下,从左到右对节点从0开始编号,对任意第
个节点
(1) 它的左孩子结点是:R[2*i+1];
(2) 它的右孩子结点是:R[2*i+2];
(3) 它的父结点是:R[(i-1)/2];
(4) R[i] <= R[2*i+1] 且 R[i] <= R[2i+2]。
性质1:
性质2:完全二叉树中,度为1的节点个数或者是0,或者是1
性质3:
堆排序实现过程(结构为完全二叉树)
首先,按堆的定义将数组R[0..n]调整为堆(这个过程称为创建初始堆),交换R[0]和R[n];
然后,将R[0..n-1]调整为堆,交换R[0]和R[n-1];
如此反复,直到交换了R[0]和R[1]为止。
三、平衡二叉树
它或者是一颗空树,或它的左子树和右子树的深度之差(平衡因子)的绝对值不超过1,且它的左子树和右子树都是一颗平衡二叉树。
四、最优二叉树(哈夫曼树)
树的带权路径长度达到最小,称这样的二叉树为最优二叉树,也称为哈夫曼树(Huffman Tree)。哈夫曼树是带权路径长度最短的树,权值较大的结点离根较近。