去连线。将二叉树b的根结点与其右子结点以及沿右子结点链方向的所有右子结点的连
线全部去掉,得到若干棵孤立的二叉树,每一棵就是原来森林f中的树依次对应的二叉树。二叉树的还原。将各棵孤立的二叉树按二叉树还原为树的方法还原成一般的树。
、树的遍历
由树结构的定义可知,树的遍历有二种方法。
先序遍历:先访问根结点,然后依次先序遍历完每棵子树。如图,先序遍历的次序是:
abcdefgijhk
后序遍历:先依次后序遍历完每棵子树,然后访问根结点。如图,后序遍历的次序是:
cdbfijgheka
树的先序遍历实质上与将树转换成二叉树后对二叉树的先序遍历相同。
树的后序遍历实质上与将树转换成二叉树后对二叉树的中序遍历相同
【o年】若将一棵树t转化为对应的二叉树bt,则下列对bt的遍历中,其遍历序列
这章没有结束,请点击下一页继续阅读!
与t的后根遍历序列相同的是()
a先序遍历b中序遍历c后序遍历d按层遍历
【oo年】已知森林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考点:哈夫曼树★★★
、最优二叉树huffan树
结点路径:从树中一个结点到另一个结点的之间的分支构成这两个结点之间的路径。
路径长度:结点路径上的分支数目称为路径长度。
结点的带权路径长度:从该结点的到树的根结点之间的路径长度与结点的权值的乘积
权值:各种开销、代价、频度等的抽象称呼。
树的路径长度:从树根到每一个结点的路径长度之和。
、huffan树的构造
根据n个权值{du,du,?,dun},构造成n棵二叉树的集合f={t,t,?,tn},其中每棵二
叉树只有一个权值为dui的根结点,没有左、右子树;
在f中选取两棵根结点权值最小的树作为左、右子树构造一棵新的二叉树,且新的二
叉树根结点权值为其左、右子树根结点的权值之和;
在f中删除这两棵树,同时将新得到的树加入f中;
重复、,直到f只含一颗树为止。
构造huffan树时,为了规范,规定f={t,t,?,tn}中权值小的二叉树作为新构造的二叉树
的左子树,权值大的二叉树作为新构造的二叉树的右子树;在取值相等时,深度小的二叉树
作为新构造的二叉树的左子树,深度大的二叉树作为新构造的二叉树的右子树。
图是权值集合du={,,,,,}构造huffan树的过程。所构造的huffan树的dupl
是:dupl=x+x+x+x+x+x=。
、huffan编码方法
由于每个字符都是叶子结点,不可能出现在根结点到其它字符结点的路径上,所以一个
字符的huffan编码不可能是另一个字符的huffan编码的前缀。
若字符集c={a,b,c,d,e,f}所对应的权值集合为du={,,,,,},如图所示,则字符
a,b,编码分别是:o,oo,o,oo,o,。
以字符集c作为叶子结点,次数或频度集du作为结点的权值来构造huffan树。规定
huffan树中左分支代表“o”,右分支代表“”。
从根结点到每个叶子结点所经历的路径分支上的“o”或“”所组成的字符串,为该结
点所对应的编码,称之为huffan编码。
喜欢离语请大家收藏:dududu离语小说网更新度全网最快。