二叉树的一个重要应用——最优树问题

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

w1+w2
代之以
w1
w2
例1:设有一组权 2、 3、5、7、11、13、 17、19、23、29、 31、37、41。求相应 的最优树。
二叉树的另一 个应用—— 前缀码问题
定义2 给定一个序列 的集合,若没有一个 序列是另一个序列的 前缀,该序列集合称 为前缀码。
例如:{000,001, 01,10,11}是前缀 码,而{1,0001, 000}就不是前缀码。
二叉树的一个 重要应用—— 最优树问题
给定一组权w1,w2,…wt,不 妨设w1≤w2≤…≤wt。设有 一棵二叉树,共有t片树 叶,分别带权w1,w2,…wt, 该二叉树称为带权二叉树。
定义1 在带权二叉树中,若 带权为wi的树叶,其通路长 度为L(w ) ,我们把 i t w(T)=wiL(wi)称为该带权二 i=1 叉树的权。在所有带权 w1,w2,…wt的二叉树中,w(T) 最小的那棵树,称为最优树。
定理5 任意一棵二叉 树的树叶可对应一个 前缀码。
证明 给定一棵二叉树,从 每一个分枝点引出两条边, 对左侧边标以0,对右侧边 标以1,则每片树叶将可标 定一个0和1的序列,它是由 树根到这片树叶的通路上各 边标号所组成的序列,
显然,没有一片树叶的标定 序列是另一片树叶标定序列 的前缀,因此,任何一棵二 叉树的树叶可对应一个前缀 码。
定理6 任何一个前缀 码都对应一棵二叉树。
证明 设给定一个前缀码, h表示前缀码中最长序列的 长度。我们画出一棵高ቤተ መጻሕፍቲ ባይዱ为 h的正则二叉树,并给每一 分枝点射出的两条边标以0 和1,
这样,每个结点可以标定一 个二进制序列,它是由树根 到该结点通路上各边的标号 所确定,因此,对于长度不 超过h的每一二进制序列必 对应一个结点。
串 进行详码?
译出为止
m八 依此类推。
它对应的历优树如自 7ed.7所示。
定理3 设T为带权 w1≤w2≤…≤wt的最优树,则 a)带权w1,w2,…wt的树叶 vw1,vw2是兄弟。 b)以树叶vw1,vw2为儿子的 分枝点,其通路长度最长。
定理4 设T为带权 w1≤w2≤…≤wt的最优树, 若将以带权w1和w2的树叶 为儿子的分枝点改为带权 w1+w2的树叶,得到一棵 新树T’,则T’也是最优树。
对应于前缀码中的每一序列 的结点,给予一个标记,并 将标记结点的所有后裔和射 出的边全部删去,这样得到 一棵二叉树,再删去其中未 加标记的树叶,得到一棵新 的二叉树,它的树叶就对应 给定的前缀码。
图(b)中所对应的前缀码 {00,001,01,1}。设有 二进制序列 00010011011101001可译 为000,1,001,1,01,1, 1,01,001。
相关文档
最新文档