回覆列表
  • 1 # lanfengz1

    先編造哈夫曼樹,哈夫曼樹構造規則:

    假設有n個權值,則構造出的哈夫曼樹有n個葉子結點。 n個權值分別設為 w1、w2、…、wn,則哈夫曼樹的構造規則為:

    (1) 將w1、w2、…,wn看成是有n 棵樹的森林(每棵樹僅有一個結點);

    (2) 在森林中選出兩個根結點的權值最小的樹合併,作為一棵新樹的左、右子樹,且新樹的根結點權值為其左、右子樹根結點權值之和;

    (4)重複(2)、(3)步,直到森林中只剩一棵樹為止

    構造完成之後,從這個樹根結點開始,預設左子樹為0,右子樹為1,直到葉子結點為止,葉子結點的編碼就是需要的編碼。

    舉例

    知字元A B C D E F的權值為8 12 5 20 4 11

    哈夫曼樹就是:

    60

    / \

    23 37

    / \ / \

    F(11) B(12) 17 D(20)

    / \

    A(8) 9

    / \

    E(4) C(5)

    編碼就是 A:100, B:01, C:1011, D: 11, E:1010 ,F:00

  • 中秋節和大豐收的關聯?
  • 龍井的歸創作背景?