給定一段字串,如何對字元進行編碼,可以使得該字串的編碼儲存空間最小?
【例】假設有一段文字,包含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...