返 回 上一页

一、根树

二、r元树

根树及其应用

重点:1、有向树及根树的定义,

   2、家族树,有序树, 元树的概念,

   3、最优 元树的概念及哈夫曼 算法。

一、根树

1、有向树:一个有向图 ,若略去有向边的方向所得的无向图为一棵无向树,则称 为有向树。

2、根树:一棵非平凡的有向树,如果有一个顶点的入度为 ,其余顶点的入度均为 ,则称此有向树为根树。入度为 的顶称为树根; 入度为1、出度为0的顶点称为树叶;入度为1、出度大于0的顶点称为内点,内点和树根统称为分支点。

注意:根树的画法可以是任意的,但常将根画在最上方,这时,有向边的方向均指向下方,故可略去其方向。

  例1、

  

  根树(1)可画成(2),其中,

                  …………树根

    , , , , ,    …………树叶

    , ,          …………内点

3、树高。

   的层数——从树根到顶点 的通路长度,记 。

  树高——树中顶点的最大层数,记 。

  如例1中, 为 层, 在第 层上, 在第 层上, 在第 层上,树高为 。

4、家族树。

  一棵根树可以看成一棵家族树。

  (1) 若顶点 邻接到顶点 ,则称 为 的儿子, 为 的父亲,

  (2) 若 同为 的儿子,则称 为兄弟,

  (3) 若 ,而 可达 ,则称 为 的祖先, 为 的后代。

5、根子树。 

  树 的根子树—— 的非树根的顶点 及其后代导出的子图。

  例2、

   

  上图的根树 中, 为兄弟,它们都是 的儿子,而 又有儿子 , 有儿子 , 为 的祖先, 为 的后代,……。

   是 的根子树。

二、 元树

1、有序树——每一层上都规定次序的根树。

  次序可排在顶点处,也可排在边上,一般从左到右。

2、 元树——每个分支点至多有 个儿子的根树。

   元正则树——每个分支点恰有 个儿子的根树。

   元有序树—— 元树,且是有序树。

   元有序正则树—— 元正则树,且是有序树。

   元完全正则树—— 元正则树,且所有树叶的层数相同 (等于树高)。

   元有序完全正则树—— 元正则完全树,且是有序树。

  注意: 元有序正则树是最重要的一种 元树。

  例3、

   

  上图中,(1)为 元有序树,(2)为 元有序正则树,(3)为 元有序完全正则树。

3、最优 元树。

  (1)定义:设 元树 有 片树叶,分别带权为 ( 为实数, ),称 为 的权,其中 为带权 的树叶 的层数,在所有的带权 的 元树中,带权最小的 元树称为最优 元树。

  例4、

  

  上图中的 都是带权 的 元树,求 , , 。

  解: ,

     ,

     。

  显然, ,但还不能判定 是最优 元树。

  (2) 求最优 元树的算法。

    算法:

   给定实数 ( 片树叶的权),且 ,

    连接 为权的两片树叶,得一分支点,其权为 ,

    在 中选出两个最小的权,连接它们对应的顶点 (不一定都是树叶),得分支点及所带的权。

    重复 ,直到形成 个分支点, 片树叶为止。

  例5、求带权 的最优 元树 及 。

  解:

  上图(1),(2),(3),(4)即求最优 元树的过程,其中(4)为最优 元树。

   ,

  其实 等于 的各分支点的权之和 (思考:为什么?),即

   ,

  比较例4,例5知,例4的 也是带权为 的最优 元树,因为 也是 ,可见,最优树是不唯一的,但 算法得到的树一定是最优树。

  例6、(1) 求带权为 的最优 元树 ,

     (2) 求 ,

     (3) 求 的高度 ,

     (4) 求 的树叶有多少?

     (5) 求 的 度顶点, 度顶点, 度顶点各有多少?

  解:(1)

    (2) ,

    (3) ,

    (4) 的树叶有 片,

    (5) 的 度顶点 个 (即树根),

      度顶点 个 (即内点),

      度顶点 个。

4、求最佳前缀码。

  最优 元树的用途之一是求最佳前缀码。

  在通讯中,我们常用 和 的符号串作为英文字母的传送信息, 个英文字母被使用的频率往往是不同的。为了使整个信息的长度尽可能短,自然希望用较短的符号串去表示使用频率高的英文字母,用较长的符号串表示使用频率低的英文字母。为了使编码在使用中既快速又准确,可以用求最优 元树的 算法解决这个问题。

返 回 上一页