首页 > 其他类型 > 离语 > 第327章 半

第327章 半(2/2)

目录

上述转换规则是递归的,可以写出其递归算法。以下给出具体的还原步骤。

1去连线。将二叉树b的根结点与其右子结点以及沿右子结点链方向的所有右子结点的连

线全部去掉,得到若干棵孤立的二叉树,每一棵就是原来森林F中的树依次对应的二叉树。2二叉树的还原。将各棵孤立的二叉树按二叉树还原为树的方法还原成一般的树。

5、树的遍历

由树结构的定义可知,树的遍历有二种方法。

(1)先序遍历:先访问根结点,然后依次先序遍历完每棵子树。如图,先序遍历的次序是:

AbcdEFGIJhK

(2)后序遍历:先依次后序遍历完每棵子树,然后访问根结点。如图,后序遍历的次序是:

cdbFIJGhEKA

树的先序遍历实质上与将树转换成二叉树后对二叉树的先序遍历相同。

树的后序遍历实质上与将树转换成二叉树后对二叉树的中序遍历相同

【2019年】若将一棵树t转化为对应的二叉树bt,则下列对bt的遍历中,其遍历序列

与t的后根遍历序列相同的是()

A.先序遍历b.中序遍历c.后序遍历d.按层遍历

【2020年】已知森林F及与之对应的二叉树t,若F的先根遍历序列是a,b,c,d,e,f,中

根遍历序列是b,a,d,f,e,c则t的后根遍历序列是:

A、b,a,d,f,e,cb、b,d,f,e,c,ac、b,f,e,d,c,ad、f,e,d,c,b,a考点15:哈夫曼树(★★★)

1、最优二叉树(huffan树)

1结点路径:从树中一个结点到另一个结点的之间的分支构成这两个结点之间的路径。

2路径长度:结点路径上的分支数目称为路径长度。

3结点的带权路径长度:从该结点的到树的根结点之间的路径长度与结点的权(值)的乘积

4权(值):各种开销、代价、频度等的抽象称呼。

5树的路径长度:从树根到每一个结点的路径长度之和。

2、huffan树的构造

1根据n个权值{w1,w2,?,wn},构造成n棵二叉树的集合F={t1,t2,?,tn},其中每棵二

叉树只有一个权值为wi的根结点,没有左、右子树;

2在F中选取两棵根结点权值最小的树作为左、右子树构造一棵新的二叉树,且新的二

叉树根结点权值为其左、右子树根结点的权值之和;

3在F中删除这两棵树,同时将新得到的树加入F中;

4重复2、3,直到F只含一颗树为止。

构造huffan树时,为了规范,规定F={t1,t2,?,tn}中权值小的二叉树作为新构造的二叉树

的左子树,权值大的二叉树作为新构造的二叉树的右子树;在取值相等时,深度小的二叉树

作为新构造的二叉树的左子树,深度大的二叉树作为新构造的二叉树的右子树。

图是权值集合w={8,3,4,6,5,5}构造huffan树的过程。所构造的huffan树的wpL

是:wpL=6x2+3x3+4x3+8x2+5x3+5x3=79。

3、huffan编码方法

由于每个字符都是叶子结点,不可能出现在根结点到其它字符结点的路径上,所以一个

字符的huffan编码不可能是另一个字符的huffan编码的前缀。

若字符集c={a,b,c,d,e,f}所对应的权值集合为w={8,3,4,6,5,5},如图所示,则字符

a,b,c,d,e,f所对应的huffan编码分别是:10,010,011,00,110,111。

以字符集c作为叶子结点,次数或频度集w作为结点的权值来构造huffan树。规定

huffan树中左分支代表“0”,右分支代表“1”。

从根结点到每个叶子结点所经历的路径分支上的“0”或“1”所组成的字符串,为该结

点所对应的编码,称之为huffan编码。最近转码严重,让我们更有动力,更新更快,麻烦你动动小手退出阅读模式。谢谢

目录
返回顶部