浙江大學資料結構(5 2 3哈夫曼編碼)

2021-09-22 20:06:32 字數 373 閱讀 1430

給定一段字串,如何對字元進行編碼,可以使得該字串的編碼儲存空間最小?

【例】假設有一段文字,包含58個字元,並由以下7個字元構成:a,e,i,s,t,空格,換行;這7個字元出現的次數不同。如何對這7個字元進行編碼,使得總編碼空間最少?

【分析】

用等長的ascii編碼:58*8=464位

用等長3位編碼:58*3=174位

不等長編碼:出現頻率高的字元用的編碼短些,出現頻率低的字元則可以編碼長些?

怎麼進行不等長編碼?

如何避免二義性?

用二叉樹進行編碼:

左右分支:0、1

字元只在葉結點上

怎麼構造一顆編碼代價最小的二叉樹?

利用哈夫曼樹進行編碼!!!

資料結構 哈夫曼樹 哈夫曼編碼

哈夫曼樹又稱最優樹 二叉樹 是一類帶權路徑最短的樹。構造這種樹的演算法最早是由哈夫曼 huffman 1952年提出,這種樹在資訊檢索中很有用。結點之間的路徑長度 從乙個結點到另乙個結點之間的分支數目。樹的路徑長度 從樹的根到樹中每乙個結點的路徑長度之和。結點的帶權路徑長度 從該結點到樹根之間的路徑...

哈夫曼編碼 哈夫曼樹 (資料結構)

哈夫曼編碼,又稱霍夫曼編碼,是一種編碼方式,哈夫曼編碼是可變字長編碼 vlc 的一種。huffman於1952年提出一種編碼方法,該方法完全依據字元出現概率來構造異字頭的平均長度最短的碼字,有時稱之為最佳編碼,一般就叫做huffman編碼 有時也稱為霍夫曼編碼 include include inc...

PTA資料結構習題(浙江大學)

感謝疫情期間pta開放免費練習,趁著這個機會補一下資料結構的代 include include include struct stud node struct stud node createlist struct stud node deletelist struct stud node head...