二叉樹的一個重要應(yīng)用最優(yōu)樹問題課堂PPT_第1頁
二叉樹的一個重要應(yīng)用最優(yōu)樹問題課堂PPT_第2頁
二叉樹的一個重要應(yīng)用最優(yōu)樹問題課堂PPT_第3頁
二叉樹的一個重要應(yīng)用最優(yōu)樹問題課堂PPT_第4頁
二叉樹的一個重要應(yīng)用最優(yōu)樹問題課堂PPT_第5頁
已閱讀5頁,還剩24頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、二叉樹的一個二叉樹的一個重要應(yīng)用重要應(yīng)用給定一組權(quán)給定一組權(quán)w1,w2,wt,不不妨設(shè)妨設(shè)w1w2wt。設(shè)有。設(shè)有一棵二叉樹,共有一棵二叉樹,共有t片樹片樹葉,分別帶權(quán)葉,分別帶權(quán)w1,w2,wt,該二叉樹稱為該二叉樹稱為帶權(quán)二叉樹帶權(quán)二叉樹。 在帶權(quán)二叉樹中,若在帶權(quán)二叉樹中,若帶權(quán)為帶權(quán)為wi的樹葉,其通路長的樹葉,其通路長度為度為l(wi),我們把,我們把w(t)= wil(wi)稱為該帶權(quán)二稱為該帶權(quán)二叉樹的權(quán)。在所有帶權(quán)叉樹的權(quán)。在所有帶權(quán)w1,w2,wt的二叉樹中,的二叉樹中,w(t)最小最小的那棵樹,稱為最優(yōu)樹。的那棵樹,稱為最優(yōu)樹。ti=1定理定理3 設(shè)設(shè)t為帶權(quán)為帶權(quán)w1w2

2、wt的最優(yōu)樹,則的最優(yōu)樹,則 a)帶權(quán))帶權(quán)w1,w2,wt的樹葉的樹葉vw1,vw2是兄弟。是兄弟。 b)以樹葉)以樹葉vw1,vw2為兒子的為兒子的分枝點,其通路長度分枝點,其通路長度最長最長。定理定理4 設(shè)設(shè)t為帶權(quán)為帶權(quán)w1w2wt的最優(yōu)樹,的最優(yōu)樹,若將以帶權(quán)若將以帶權(quán)w1和和w2的樹葉的樹葉為兒子的分枝點改為帶權(quán)為兒子的分枝點改為帶權(quán)w1+w2的樹葉,得到一棵的樹葉,得到一棵新樹新樹t,則,則t也是最優(yōu)樹。也是最優(yōu)樹。代之以代之以w1+w2w2w1設(shè)有一組權(quán)設(shè)有一組權(quán) 2、3、5、7、11、13、 17、19、23、29、 31、37、41。求相應(yīng)。求相應(yīng)的最優(yōu)樹。的最優(yōu)樹。二叉樹

3、的另一二叉樹的另一個應(yīng)用個應(yīng)用 給定一個序列給定一個序列的集合,若沒有一個的集合,若沒有一個序列是另一個序列的序列是另一個序列的前綴,該序列集合稱前綴,該序列集合稱為前綴碼。為前綴碼。例如:例如:000,001,01,10,11是前綴是前綴碼,而碼,而1,0001, 000就不是前綴碼。就不是前綴碼。 任意一棵二叉任意一棵二叉樹的樹葉可對應(yīng)一個樹的樹葉可對應(yīng)一個前綴碼。前綴碼。證明證明 給定一棵二叉樹,從給定一棵二叉樹,從每一個分枝點引出兩條邊,每一個分枝點引出兩條邊,對左側(cè)邊標(biāo)以對左側(cè)邊標(biāo)以0 0,對右側(cè)邊,對右側(cè)邊標(biāo)以標(biāo)以1 1,則每片樹葉將可標(biāo),則每片樹葉將可標(biāo)定一個定一個0 0和和1

4、1的的序列序列,它是由,它是由樹根到這片樹葉的通路上各樹根到這片樹葉的通路上各邊標(biāo)號所組成的序列,邊標(biāo)號所組成的序列,顯然,沒有一片樹葉的標(biāo)定顯然,沒有一片樹葉的標(biāo)定序列是另一片樹葉標(biāo)定序列序列是另一片樹葉標(biāo)定序列的前綴,因此,任何一棵二的前綴,因此,任何一棵二叉樹的樹葉可對應(yīng)一個前綴叉樹的樹葉可對應(yīng)一個前綴碼。碼。 任何一個前綴任何一個前綴碼都對應(yīng)一棵二叉樹。碼都對應(yīng)一棵二叉樹。證明證明 設(shè)給定一個前綴碼,設(shè)給定一個前綴碼,h h表示前綴碼中最長序列的表示前綴碼中最長序列的長度。我們畫出一棵高度為長度。我們畫出一棵高度為h h的的正則二叉樹正則二叉樹,并給每一,并給每一分枝點射出的兩條邊標(biāo)以

5、分枝點射出的兩條邊標(biāo)以0 0和和1 1,這樣,每個結(jié)點可以標(biāo)定一這樣,每個結(jié)點可以標(biāo)定一個二進制序列,它是由樹根個二進制序列,它是由樹根到該結(jié)點通路上各邊的標(biāo)號到該結(jié)點通路上各邊的標(biāo)號所確定,因此,對于長度不所確定,因此,對于長度不超過超過h h的每一二進制序列必的每一二進制序列必對應(yīng)一個結(jié)點。對應(yīng)一個結(jié)點。對應(yīng)于前綴碼中的每一序列對應(yīng)于前綴碼中的每一序列的結(jié)點,給予一個標(biāo)記,并的結(jié)點,給予一個標(biāo)記,并將標(biāo)記結(jié)點的所有后裔和射將標(biāo)記結(jié)點的所有后裔和射出的邊全部刪去,這樣得到出的邊全部刪去,這樣得到一棵二叉樹,再刪去其中未一棵二叉樹,再刪去其中未加標(biāo)記的樹葉,得到一棵新加標(biāo)記的樹葉,得到一棵新的

6、二叉樹,它的樹葉就對應(yīng)的二叉樹,它的樹葉就對應(yīng)給定的前綴碼。給定的前綴碼。圖(圖(b)中所對應(yīng)的前綴碼)中所對應(yīng)的前綴碼00,001,01,1。設(shè)有。設(shè)有二進制序列二進制序列00010011011101001可譯可譯為為000,1,001,1,01,1,1,01,001。23。 我們知道,在遠距我們知道,在遠距離通訊中,常常用離通訊中,常常用0和和 1的字符串作為英文的字符串作為英文字母的傳送信息,因字母的傳送信息,因為英文字母共有為英文字母共有26個,個,故如用不等長的故如用不等長的h進進制序列表示制序列表示 26個英文個英文字母時,由于長度為字母時,由于長度為 1的序列有的序列有 2個,長

7、度個,長度為為2的的h進制序列有進制序列有 2個,長度為個,長度為 3的有的有 2個,依此類推,我們個,依此類推,我們有有 22,226 zi12p26, 474因此,用長度不超過因此,用長度不超過四的二進制序列就可四的二進制序列就可表達表達26個不同英文字個不同英文字母。但是由于字母使母。但是由于字母使用的頻繁程度不同,用的頻繁程度不同,為了減少信息量,人為了減少信息量,人們希們希望用較短的序列去表望用較短的序列去表示頻繁使用的字母。示頻繁使用的字母。當(dāng)使用不同長度的序當(dāng)使用不同長度的序列列表示字母時,我們要表示字母時,我們要考慮的另一個問題是考慮的另一個問題是如何對接收到的字符如何對接收到

8、的字符串串進行詳碼?進行詳碼? 回回 四四 例如圖例如圖788給出給出了與前綴碼懺叭了與前綴碼懺叭001,01,萬對應(yīng)的完,萬對應(yīng)的完全二叉樹,其中圖全二叉樹,其中圖k)是高度為是高度為3的正則二叉的正則二叉樹,對應(yīng)前綴碼中序樹,對應(yīng)前綴碼中序列的結(jié)點用方框標(biāo)記,列的結(jié)點用方框標(biāo)記,圖(的是經(jīng)刪剪后得圖(的是經(jīng)刪剪后得到的對應(yīng)三叉樹。到的對應(yīng)三叉樹。 通過前綴碼和二叉通過前綴碼和二叉樹的對應(yīng)關(guān)系,我們樹的對應(yīng)關(guān)系,我們可知,如果給定前綴可知,如果給定前綴碼碼對應(yīng)的二叉樹是完全對應(yīng)的二叉樹是完全二叉樹,則此前綴碼二叉樹,則此前綴碼可進行譯碼。可進行譯碼。 例如例如,可對,可對任意二進制序列進行任

9、意二進制序列進行譯碼。譯碼。 如果被譯的如果被譯的信息最后部分不能成信息最后部分不能成為前綴碼中的序列,為前綴碼中的序列,可約定可約定添加添加0或或1,直至能夠,直至能夠譯出為止譯出為止 證明設(shè)在帶權(quán)證明設(shè)在帶權(quán)w,創(chuàng)創(chuàng)b,。的最,。的最優(yōu)樹中,優(yōu)樹中,0是通路長度是通路長度最長的分校點,用的最長的分校點,用的兒子分別帶權(quán)兒子分別帶權(quán)wi和。和。0,故有,故有 lthedel(wi l(叫(叫l(wèi)(w) 若若l枷枷jlj,將,將叩與一對調(diào),得到新叩與一對調(diào),得到新材材t。則。則 。許一叫。許一叫n一一(ledw十十ltw叨叨j 一(一(l(叫(叫w十十l(w卜卜w) 一一l0wih一。干一。干l

10、(。(。1)tw一心一心 一(一(w一一w)()(l(w)一)一 l (w)0即。叨即。叨)。)。w,與,與t是最優(yōu)樹的假定矛盾。是最優(yōu)樹的假定矛盾。故工故工ho一一l(心。(心。 同理可證同理可證lbol(w)。因此)。因此 ltw)一)一石石功一功一ledl。)。)分別將分別將o七,。與七,。與o七,。對調(diào)得到一七,。對調(diào)得到一棵最優(yōu)樹,其中帶權(quán)棵最優(yōu)樹,其中帶權(quán)創(chuàng)創(chuàng)h和以。和以。的樹葉是兄弟?;氐臉淙~是兄弟?;?證明根據(jù)題設(shè),有證明根據(jù)題設(shè),有 一。(萬一。一。(萬一。w卜。卜。1w。若若t不是最優(yōu)樹,則必不是最優(yōu)樹,則必有另一棵帶權(quán)地有另一棵帶權(quán)地十。,。十。,。a,。;,。;的最優(yōu)的

11、最優(yōu)樹樹p。對。對y中帶權(quán)地十中帶權(quán)地十創(chuàng)會的樹葉。創(chuàng)會的樹葉。生成兩個兒子,得到生成兩個兒子,得到新樹分,則一新樹分,則一 。(。(f一叫一叫p)。)。l十一。十一。 因因為為t”是帶權(quán)。是帶權(quán)。1wb,w,。,。t的最優(yōu)樹,的最優(yōu)樹,故故 ho(”)。(。(t。如果。如果。w)。仔,)。仔,則。曲。側(cè),與則。曲。側(cè),與y是是帶權(quán)。,帶權(quán)。,。最優(yōu)樹的假設(shè)矛盾,最優(yōu)樹的假設(shè)矛盾,因此因此”、“ 。卜。卜。們,們,er是帶權(quán)是帶權(quán)ww,w,w的最優(yōu)樹。的最優(yōu)樹?;鼗?根據(jù)上述兩條定理,根據(jù)上述兩條定理,要畫一棵帶有:個權(quán)要畫一棵帶有:個權(quán)的最優(yōu)裕,可簡化為的最優(yōu)裕,可簡化為畫一棵帶有畫一棵帶有

12、t一一1個權(quán)個權(quán)的最優(yōu)樹,而這又可的最優(yōu)樹,而這又可簡化為畫一棵帶有簡化為畫一棵帶有t一一2個權(quán)的最優(yōu)樹,依此個權(quán)的最優(yōu)樹,依此類推。具體做法是:類推。具體做法是:首先找出兩個最小的。首先找出兩個最小的。值值以刀地和地,然后對以刀地和地,然后對卜卜1個權(quán)地十個權(quán)地十w,w。wb作一擔(dān)全作一擔(dān)全優(yōu)樹,并且將這棵最優(yōu)樹,并且將這棵最優(yōu)樹中的結(jié)點優(yōu)樹中的結(jié)點k刁代之刁代之m八八依此類推。依此類推。 m首先組合首先組合 2十已十已并尋找并尋找5、 5、 7、11、 af的的mmforsg65依!依!k來推。邊來推。邊人二人二,。,。u。,。,h。d 8 3 57 m 1317 19 23 29 31 37 41 5 5 711 18 17 19 23 29 31 37 41 10 7 11 13 17 192329

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論