簡體   English   中英

為什么在哈夫曼樹中不可能只有一個孩子的節點?

[英]Why a node with only one child is impossible in Huffman Tree?

構建編碼樹時,必須避免前綴編碼,以免遇到歧義。 所以,我們應該讓編碼的字符成為葉子。 但是為什么一個節點不可能只有一個子節點呢,確實符合要求,不會造成歧義。 我知道從底部到頂部構造編碼樹的霍夫曼算法無法實現。

是否有另一種編碼算法可以使編碼樹節點只有一個孩子?

我只能理解你問題的最后一行。 如果一個節點只有一個子節點,那么您最終會得到一個或多個未使用的代碼,因為只有 0 或 1 分支出現。 position 中分別帶有 1 或 0 的代碼沒有任何意義或用途。 (注意這里沒有歧義問題,只是有些位序列無法解碼。)

沒有理由不將該節點及其子節點折疊為該子節點,從而消除未使用的代碼。 如果存在可能導致這種情況的編碼算法,那么它會生成次優代碼。 通過對 go 應用另一種簡單算法並折疊這些情況,消除問題,使用所有代碼並改進壓縮,可以輕松解決這個問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM