离散-10.pptVIP

  • 17
  • 0
  • 约4.8千字
  • 约 39页
  • 2016-12-20 发布于江苏
  • 举报
基础学院公共基础教研室 第六节 根树及其应用 一、根数 二、最优树 一、根数 定义 T是一棵有向树,若T中恰有一个顶点入度为0,其余顶点的入度均为1,则称T为根树。入度为0的顶点称树根,出度为0的顶点称树叶,入度为1、出度不为0的顶点称内点,内点和树根统称为分支点。 例如下图1中的(a)、(b)、(c)均是有向树,但只有图(c)是根树。 由定义和例题易知,对于(n,m)根树,同样有m=n-1,且根树一定是有向树,但反之未必。 在根树中,从树根v0到每个顶点vi有唯一一条初级通路,该通路的长度称为点vi的层数,记作l(vi),其中最大的层数称为树高,记作h(T)。 习惯上将根树画成树根在上,各边箭头均朝下的形状(如图1(c)所示),并为方便起见,略去各边上的箭头,可以看出,根树上的各个顶点有了层次关系。 一棵根树常常被形象的比作一棵家族树,如果顶点u邻接到顶点v,则称u为v的父亲,v为u的儿子;共有同一个父亲的顶点称为兄弟;如果顶点u可达顶点v,则称u是v的祖先,v是u的后代。在根树T中,所有的内点、树叶均是树根的后代,由某个顶点vi及其所有的后代构成的导出子图称为T的以vi为根的子根树。 例如上图 (c)中,v3是v1的儿子,v1是v3的父亲;v4与v5是兄弟,T′=G[{v2,v4,v5,v6,v7,v8}]是以v2为根的T的子根树。 定义 在根树T中,如果每一层的顶点都按一定的次序排列,则称T为有序树。在画有序树时,常假定每一层的顶点是按从左到右排序的。 例如图2中的(a)和(b)表示的是不同的有序树。而如果不考虑同层顶点的次序,则图2(a)和(b)表示的是同一棵根树。 【例】 英语句子“The big elephant ate the peanut”可以图解为图3,称之为这个英语句子的语法树。可见,句子的语法树是一棵有序树。 定义 设T是一棵根树。 (1)若T的每个顶点至多有m个儿子,则称T为m元树。 (2)若T的每个顶点都有m个或0个儿子,则称T为m元正则树。 (3)若T是m元树,并且是有序的,则称T为m元有序树。 (4)若T是m元正则树,并且是有序的,则称T为m元有序正则树。 (5)若T是m元正则树,且所有树叶的层数都等于树高,则称T为m元完全正则树。 (6)若T是m元完全正则树,且是有序的,则称T为m元有序完全正则树。 (7)设T是m元树,如果为T中每个顶点的儿子规定了确定的位置,则称T为m元位置树。 例如,图4中的(a)和(b)可看成相等的二元有序树,但是不是相同的二元位置树,图(c)是二元正则树,图(d)是二元完全正则树。 在所有的m元树中,二元树居重要地位,其中二元有序正则树应用最为广泛。在二元有序正则树中,以分支点的两个儿子分别作为树根的两棵子树通常称为该分支点的左子树和右子树。 二、最优树 定义 设根树T有t片树叶v1,v2,…,vt,它们分别带权w1,w2,…,wt,则称T为(叶)带权树,称 【例】 求4片树叶分别带权5,6,7,12的二元树的权。 解 根据题意,我们构造出了四棵树叶具有不同权的带权二元树,如图5所示,其中图(a)、(b)、(c)、(d)对应的二元树的权分别为 W(T1)=61,W(T2)=74 W(T3)=59,W(T4)=60。 由于树叶的层数不同,叶权也大小各异,因此树权是不同的,但其中必存在一棵权最小的二元树。 定义 在所有叶带权w1,w2,…,wt的二元树中,权最小的二元树称最优二元树,简称最优树(又称Huffman树)。 如何寻求最优二元树?1952年哈夫曼(Huffman)给出了求最优二元树的算法。即Huffman算法: 令S={w1,w2,…,wt},w1≤w2≤…≤wt,wi是树叶vi所带的权(i=1,2,…,t)。 (1)在S中选取两个最小的权wi,wj,使它们对应的顶点vi,vj做兄弟,得一分支点vr,令其带权wr=wi+wj。 (2)从S中去掉wi,wj,再加入wr。 (3)若S中只有一个元素,则停止,否则转到(1)。 定理 (Huffman定理) 设T是带权w1≤w2≤…≤wt的最优二元树,如果将T中带权为w1和w2的树叶去掉,并以它们的父亲作树叶,且带权w1+w2,记所得新树为 ,则 是带权为w1+w2,w3,…,

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档