国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

數(shù)據(jù)結構【哈夫曼樹】

這篇具有很好參考價值的文章主要介紹了數(shù)據(jù)結構【哈夫曼樹】。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

哈夫曼樹的概念

最優(yōu)二叉樹也稱哈夫曼 (Huffman) 樹,是指對于一組帶有確定權值的葉子結點,構造的具有最小帶權路徑長度的二叉樹。權值是指一個與特定結點相關的數(shù)值。哈夫曼樹是帶權路徑長度最短的樹,權值較大的結點離根較近。

涉及到的幾個概念:
路徑:
從樹中一個結點到另一個結點之間的分支構成這兩個結點間的路徑。
結點的路徑長度:
兩結點間路徑上的分支數(shù)。
樹的路徑長度:
從樹根到每一個結點的路徑長度之和。記作: TL。
權(weight):
將樹中結點賦給一個有著某種含義的數(shù)值則這個數(shù)值稱為該結點的權。
結點的帶權路徑長度:
從根結點到該結點之間的路徑長度與該結點的權的乘積。
樹的帶權路徑長度:
樹中所有葉子結點的帶權路徑長度之和。
二叉樹的帶權路徑長度 (Weighted Path Length):
二叉樹的路徑長度是指由根結點到所有葉子結點的路徑長度之和。
如果二叉樹中的所有葉子結點都具有一個特定的權值,則可將這一概念加以推廣。設二叉樹具有n個帶權值的葉子結點,那么從根結點到各個葉子結點的路徑長度與該葉子結點相應的權值的乘積之和叫做又樹的帶權路徑長度,記為:
數(shù)據(jù)結構【哈夫曼樹】,數(shù)據(jù)結構與算法,數(shù)據(jù)結構,算法
其中,wk為第k個葉子結點的權值,Lk為第k個葉子結點的路徑長度。
數(shù)據(jù)結構【哈夫曼樹】,數(shù)據(jù)結構與算法,數(shù)據(jù)結構,算法
最優(yōu)樹:帶權路徑長度(WPL)最短的樹

注:
“帶權路徑長度最短”是在“度相同”的樹中比較而得的結果,因此有最優(yōu)二叉樹、最優(yōu)三叉樹之稱等等。

最優(yōu)二叉樹:帶權路徑長度(WPL)最短的二叉樹

因為構造這種樹的算法是由哈夫曼教授于 1952 年提出的所以被稱為哈夫曼樹,相應的算法稱為哈夫曼算法。

哈夫曼樹的構造

哈夫曼算法(構造哈夫曼樹的四句口訣)
(1)根據(jù)n個給定的權值{ w1、w2、…、wn}構成n棵二叉樹的森林F=(T1、T2、…、Tn},其中Ti只有一個帶權為 wi的根結點。
構造森林全是根
(2)在F中選取兩棵根結點的權值最小的樹作為左右子樹,構造一棵新的二叉樹,且設置新的二叉樹的根結點的權值為其左右子樹上根結點的權值之和。
選用兩小造新樹
(3)在F中刪除這兩棵樹,同時將新得到的二又樹加入森林中。
刪除兩小添新人
(4)重復(2)和(3),直到森林中只有一棵樹為止,這棵樹即為哈夫曼樹。
重復 2、3 剩單根
數(shù)據(jù)結構【哈夫曼樹】,數(shù)據(jù)結構與算法,數(shù)據(jù)結構,算法

可以得出:
1)哈夫曼樹的節(jié)點的度為0或2,沒有度為1的節(jié)點。
2)包含n個葉子節(jié)點的哈夫曼樹中共有2n-1個節(jié)點。
3)包含n棵樹的森林要經(jīng)過n-1次合并才能形成哈夫曼樹,共產(chǎn)生n-1個新節(jié)點。

構造算法的實現(xiàn)

順序結構存儲–一維結構數(shù)組

typedef struct (
	int weight;
	int parent, lch, rch;
)HTNode,*HuffmanTree;

先初始化再構造
1.初始化HT[1…2n-1]: lch=rch=parent=0;
2. 輸入初始n個葉子結點: 置HT[1…n]的weight值;
數(shù)據(jù)結構【哈夫曼樹】,數(shù)據(jù)結構與算法,數(shù)據(jù)結構,算法
3.進行以下n-1次合并,依次產(chǎn)生n-1個結點HT[i],i=n+1…2n-1:
a) 在HT[1.i-1]中選兩個未被選過(從parent ==_0 的結點中選)的weight最小的兩個結點HT[s1]和HT[s2],s1、s2為兩個最小結點下標;
修改HT[s1]和HT[s2]的parent值: HT[s1] .parent=i; HT[s2] .parent=i;b)修改新產(chǎn)生的HT[i]:
HT[il.weight=HT[s1].weight + HT[s2].weight
HT[i]. lch=s1; HT[i]. rch=s2;
數(shù)據(jù)結構【哈夫曼樹】,數(shù)據(jù)結構與算法,數(shù)據(jù)結構,算法

哈夫曼樹應用

哈夫曼編碼

數(shù)據(jù)結構【哈夫曼樹】,數(shù)據(jù)結構與算法,數(shù)據(jù)結構,算法

哈夫曼編碼的算法實現(xiàn)

數(shù)據(jù)結構【哈夫曼樹】,數(shù)據(jù)結構與算法,數(shù)據(jù)結構,算法
示例:
數(shù)據(jù)結構【哈夫曼樹】,數(shù)據(jù)結構與算法,數(shù)據(jù)結構,算法文章來源地址http://www.zghlxwxcb.cn/news/detail-632889.html

到了這里,關于數(shù)據(jù)結構【哈夫曼樹】的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 【數(shù)據(jù)結構與算法】哈夫曼編碼(最優(yōu)二叉樹)實現(xiàn)

    【數(shù)據(jù)結構與算法】哈夫曼編碼(最優(yōu)二叉樹)實現(xiàn)

    哈夫曼編碼 等長編碼:占的位置一樣 變長編碼(不等長編碼):經(jīng)常使用的編碼比較短,不常用的比較短 最優(yōu):總長度最短 最優(yōu)的要求:占用空間盡可能短,不占用多余空間,且不能有二義性 這里給出哈夫曼二叉樹的實現(xiàn): HuffmanTree.h: 測試數(shù)據(jù)(主函數(shù)): 運行結果截圖

    2024年02月16日
    瀏覽(18)
  • 數(shù)據(jù)結構“基于哈夫曼樹的數(shù)據(jù)壓縮算法”的實驗報告

    數(shù)據(jù)結構“基于哈夫曼樹的數(shù)據(jù)壓縮算法”的實驗報告

    一個不知名大學生,江湖人稱菜狗 original author: jacky Li Email : 3435673055@qq.com Last edited: 2022.11.20 目錄 數(shù)據(jù)結構“基于哈夫曼樹的數(shù)據(jù)壓縮算法”的實驗報告 一、實驗目的 二、實驗設備 三、實驗內(nèi)容 1.【問題描述】 2.【輸入要求】 3.【輸出要求】 4.【實驗提示】 四、實驗步驟

    2024年02月09日
    瀏覽(25)
  • 【數(shù)據(jù)結構與算法】哈夫曼編碼(最優(yōu)二叉樹實現(xiàn)

    【數(shù)據(jù)結構與算法】哈夫曼編碼(最優(yōu)二叉樹實現(xiàn)

    哈夫曼編碼 等長編碼:占的位置一樣 變長編碼(不等長編碼):經(jīng)常使用的編碼比較短,不常用的比較短 最優(yōu):總長度最短 最優(yōu)的要求:占用空間盡可能短,不占用多余空間,且不能有二義性 這里給出哈夫曼二叉樹的實現(xiàn): HuffmanTree.h: 測試數(shù)據(jù)(主函數(shù)): 運行結果截圖

    2024年02月16日
    瀏覽(27)
  • 數(shù)據(jù)結構與算法(C語言版)---哈夫曼編譯碼器

    數(shù)據(jù)結構與算法(C語言版)---哈夫曼編譯碼器

    1.1、問題闡述 利用哈夫曼編碼進行通信可以大大提高信道利用率,縮短信息傳輸時間,降低傳輸成本。但是,這要求在發(fā)送端通過一個編碼系統(tǒng)對待傳數(shù)據(jù)預先編碼,在接收端將傳來的數(shù)據(jù)進行譯碼(復原)。對于雙工信道(即可以雙向傳輸信息的信道) ,每端都需要一個完整的編/譯

    2024年02月03日
    瀏覽(31)
  • 數(shù)據(jù)結構——哈夫曼樹與哈夫曼編碼

    數(shù)據(jù)結構——哈夫曼樹與哈夫曼編碼

    1.1 基本概念 路徑 :指從根結點到該結點的分支序列。 路徑長度 :指根結點到該結點所經(jīng)過的分支數(shù)目。 結點的帶權路徑長度 :從樹根到某一結點的路徑長度與該結點的權的乘積。 樹的帶權路徑長度(WPL) :樹中從根到所有葉子結點的各個帶權路徑長度之和。 哈夫曼樹 是由

    2024年02月05日
    瀏覽(16)
  • 數(shù)據(jù)結構之哈夫曼樹與哈夫曼編碼

    數(shù)據(jù)結構之哈夫曼樹與哈夫曼編碼

    編碼是信息處理的基礎(重新表示信息)。 普通的編碼是等長編碼,例如7位的ASCIL編碼,對出現(xiàn)頻率不同的字符都使用相同的編碼長度。 但其在傳輸和存儲等情況下編碼效率不高 。 可使用不等長編碼,來壓縮編碼:高頻字符編碼長度更短,低頻字符編碼長度更長。 ? [例

    2023年04月15日
    瀏覽(41)
  • 數(shù)據(jù)結構之哈夫曼樹和哈夫曼編碼

    數(shù)據(jù)結構之哈夫曼樹和哈夫曼編碼

    切入正題之前,我們先了解幾個概念: 路徑:從樹的一個結點到另一個結點分支所構成的路線 路徑長度:路徑上的分支數(shù)目 樹的路徑長度:從根結點出發(fā)到每個結點的路徑長度之和 帶權路徑長度:該結點到根結點的路徑長度乘以該結點的權值 樹的帶權路徑長度:樹中所有

    2024年02月11日
    瀏覽(24)
  • 數(shù)據(jù)結構課程實驗五:哈夫曼樹與哈夫曼編碼

    實驗日期:2022-12-20 ? 目錄 一、實驗目的 1、掌握哈夫曼樹的建立 2、掌握哈夫曼編碼方式 二、實驗內(nèi)容

    2024年02月05日
    瀏覽(30)
  • 數(shù)據(jù)結構【哈夫曼樹】

    數(shù)據(jù)結構【哈夫曼樹】

    最優(yōu)二叉樹也稱哈夫曼 (Huffman) 樹 ,是指對于一組帶有確定權值的葉子結點,構造的具有最小帶權路徑長度的二叉樹。權值是指一個與特定結點相關的數(shù)值。哈夫曼樹是帶權路徑長度最短的樹,權值較大的結點離根較近。 涉及到的幾個概念: 路徑: 從樹中一個結點到另一個結

    2024年02月14日
    瀏覽(22)
  • 數(shù)據(jù)結構-哈夫曼樹

    數(shù)據(jù)結構-哈夫曼樹

    介紹 哈夫曼樹,指 帶權路徑長度最短的二叉樹 ,通常用于數(shù)據(jù)壓縮中 什么是帶權路徑長度? 假設有一個結點,我們?yōu)樗x值,這個值我們稱為權值,那么從根結點到它所在位置,所經(jīng)歷的路徑,與這個權值的積,就是它的帶權路徑長度。 比如有這樣一棵樹,D權值為2 ?從

    2024年02月20日
    瀏覽(22)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包