满二叉树、完全二叉树、平衡二叉树、二叉搜索树(二叉查找树)和最优二叉树
1. 满二叉树
定义: 一个二叉树,除去最后一层无任何子结点外,每一层上的所有结点都有两个子结点。或者说,如果一个二叉树的层数为k,且节点总数为(2^k)-1,则它就是满二叉树。
图示:
2.完全二叉树
定义: 一颗深度为k的有n个结点的二叉树,对树种的结点按从上到下,从左到右的顺序进行编码,如果编码为i的结点与满二叉树中编码为i的结点在二叉树中的位置相同,则这棵二叉树称为完全二叉树。通俗来讲: 除了k层以外,其他层的结点数都达到最大,在第k层的结点都连续 集中在最左侧,这就是完全二叉树。
图示:
3.平衡二叉树(AVL树)
定义: 它是一棵空树或者它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。
图示:
4.二叉搜索树(二叉查找树)
定义: 它是一棵空树或者具有以下性质:若它的左子树不空,则左子树上所有结点的值都小于它的根结点的值;若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值;它的左右子树也分别为二叉搜索树。
图示:
5.最优二叉树
定义: 给定N个权值作为N个叶子结点,构造一棵二叉树,若该树的带权路径长度达到最小,称这样的二叉树为最优二叉树,也称为哈夫曼树。哈夫曼树是带权路径长度最短的树,权值较大的结点离根较近。