1、树
2、二叉树
3、特殊二叉树
4、二叉树的性质
5、线索二叉树
6、赫夫曼树
由哈夫曼树求得的编码为最优前缀码,同时也是可变字长编码。
一般所说的赫夫曼树是指严格二叉树(一颗二叉树的每个非终端节点有且仅有两棵子树),也称最优二叉树。但赫夫曼树也存在最优m叉树,此时树的节点的度要么是0,要么是m。
例题:
若度为m的赫夫曼树中,其叶节点的个数为n,则非叶结点的个数为?
设非叶结点的个数为X,则总结点数为n+X。
因为有连接数等于总结点数减一,而连接数=0*n+m*X。因为n个叶节点的连接数是0,度为m的非叶节点的连接数是m。
所以n+X-1=m*X,推出X=(n-1)/(m-1)
7、森林、树、二叉树的转换
1、树转换为二叉树
由于二叉树是有序的,为了避免混淆,对于无序树,我们约定树中的每个结点的孩子结点按从左到右的顺序进行编号。
树的每个结点(如A)的第一个孩子(如B),成为该节点(A)的左孩子,之后的孩子(如C D)依次成为左孩子(B)的右孩子。
2、森林转换为二叉树
例题:将森林F转换为对应的二叉树T,F中叶节点的个数等于:
A:T中叶节点的个数
B:T中度为1的结点个数
C:T中左孩子指针为空的结点个数
D:T中右孩子指针为空的结点个数
答案:C