五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

11.2赫夫曼樹(shù)

2022-01-03 22:44 作者:取悅疾風(fēng)  | 我要投稿

11.2.1基本介紹

1.????? 給定n個(gè)權(quán)值作為n個(gè)葉子結(jié)點(diǎn),構(gòu)造一棵二叉樹(shù),若該樹(shù)的帶權(quán)路徑長(zhǎng)度(wpl)達(dá)到最小,稱(chēng)這樣的二叉樹(shù)為最優(yōu)二叉樹(shù),也稱(chēng)為哈夫曼樹(shù)(Huffman Tree)。還有的書(shū)翻譯為霍夫曼樹(shù)。

2.????? 赫夫曼樹(shù)是帶權(quán)路徑長(zhǎng)度最短的樹(shù),權(quán)值較大的結(jié)點(diǎn)離根較近

11.2.2赫夫曼樹(shù)幾個(gè)重要概念和舉例說(shuō)明

1.????? 路徑和路徑長(zhǎng)度:在一棵樹(shù)中,從一個(gè)結(jié)點(diǎn)往下可以達(dá)到的孩子或?qū)O子結(jié)點(diǎn)之間的通路,稱(chēng)為路徑。通路中分支的數(shù)目稱(chēng)為路徑長(zhǎng)度。若規(guī)定根結(jié)點(diǎn)的層數(shù)為1,則從根結(jié)點(diǎn)到第L層結(jié)點(diǎn)的路徑長(zhǎng)度為L(zhǎng)-1。

2.????? 結(jié)點(diǎn)的權(quán)及帶權(quán)路徑長(zhǎng)度:若將樹(shù)中結(jié)點(diǎn)賦給一個(gè)有著某種含義的數(shù)值,則這個(gè)數(shù)值稱(chēng)為該結(jié)點(diǎn)的權(quán)。結(jié)點(diǎn)的帶權(quán)路徑長(zhǎng)度為:從根結(jié)點(diǎn)到該結(jié)點(diǎn)之間的路徑長(zhǎng)度與該結(jié)點(diǎn)的權(quán)的乘積。

3.????? 樹(shù)的帶權(quán)路徑長(zhǎng)度:樹(shù)的帶權(quán)路徑長(zhǎng)度規(guī)定為所有葉子結(jié)點(diǎn)的帶權(quán)路徑長(zhǎng)度之和,記為WPL(weighted path length),權(quán)值越大的結(jié)點(diǎn)離根結(jié)點(diǎn)越近的二叉樹(shù)才是最優(yōu)二叉樹(shù)。

4.????? WPL最小的就是赫夫曼樹(shù)

11.2.3赫夫曼樹(shù)的創(chuàng)建思路圖解

給你一個(gè)數(shù)列{13,7,8,3,29,6,1},要求轉(zhuǎn)成一顆赫夫曼樹(shù).

思路分析(示意圖):

構(gòu)成赫夫曼樹(shù)的步驟

1.????? 從小到大進(jìn)行排序,將每一個(gè)數(shù)據(jù),每個(gè)數(shù)據(jù)都是一個(gè)節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)可以看成是一顆最簡(jiǎn)單的二叉樹(shù)

2.????? 取出根節(jié)點(diǎn)權(quán)值最小的兩顆二叉樹(shù)

3.????? 組成一顆新的二叉樹(shù),該新的二叉樹(shù)的根節(jié)點(diǎn)的權(quán)值是前面兩顆二叉樹(shù)根節(jié)點(diǎn)權(quán)值的和

4.????? 再將這顆新的二叉樹(shù),以根節(jié)點(diǎn)的權(quán)值大小再次排序,不斷重復(fù)1-2-3-4的步驟,直到數(shù)列中,所有的數(shù)據(jù)都被處理,就得到一顆赫大曼樹(shù)

圖解

拿出最小的1和第二小的3,組成一個(gè)新的二叉樹(shù),二叉樹(shù)的根節(jié)點(diǎn)的權(quán)為2個(gè)葉子節(jié)點(diǎn)的權(quán)的和
根節(jié)點(diǎn)4再和剩下的數(shù)據(jù)里最小的值相加,生成新的根節(jié)點(diǎn),4+6=10
最終結(jié)果

11.2.4赫夫曼樹(shù)的代碼實(shí)現(xiàn)

代碼實(shí)現(xiàn)


11.2赫夫曼樹(shù)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
清丰县| 金堂县| 凤冈县| 赣州市| 夏邑县| 繁峙县| 浑源县| 荔浦县| 青阳县| 扶风县| 剑河县| 两当县| 五河县| 双桥区| 化隆| 大庆市| 玉林市| 南开区| 潜山县| 大姚县| 凌源市| 麻城市| 类乌齐县| 江阴市| 栾川县| 忻城县| 安乡县| 乌鲁木齐县| 永平县| 酉阳| 大安市| 都昌县| 浦城县| 井冈山市| 县级市| 肥城市| 枝江市| 三原县| 林甸县| 吉安县| 晋城|