3345 資料結構實驗之二叉樹六 哈夫曼編碼

2021-08-10 16:44:58 字數 865 閱讀 2890

time limit: 1000ms

memory limit: 65536kb

problem description

字元的編碼方式有多種,除了大家熟悉的ascii

編碼,哈夫曼編碼

(huffman coding)

也是一種編碼方式,它是可變字長編碼。該方法完全依據字元出現概率來構造出平均長度最短的編碼,稱之為最優編碼。哈夫曼編碼常被用於資料檔案壓縮中,其壓縮率通常在

20%~

90%之間。你的任務是對從鍵盤輸入的乙個字串求出它的

ascii

編碼長度和哈夫曼編碼長度的比值。

input

輸入資料有多組,每組資料一行,表示要編碼的字串。

output

對應字元的

ascii

編碼長度la,

huffman

編碼長度lh和

la/lh的值(

保留一位小數

),資料之間以空格間隔。

example input

aaaaabcd

the_cat_in_the_hat

example output

64 13 4.9

144 51 2.8

#include using namespace std;

char tree[500];

int counter[500];

int main()

printf("%d %d %.1lf\n",s1,s2,double((s1+0.0)/(s2+0.0)));

}return 0;

}

資料結構實驗之二叉樹四 還原二叉樹

time limit 1000ms memory limit 65536k 給定一棵二叉樹的先序遍歷序列和中序遍歷序列,要求計算該二叉樹的高度。輸入資料有多組,每組資料第一行輸入1個正整數n 1 n 50 為樹中結點總數,隨後2行先後給出先序和中序遍歷序列,均是長度為n的不包含重複英文本母 區分大小...

資料結構實驗之二叉樹四 還原二叉樹

time limit 1000ms memory limit 65536k 有疑問?點這裡 給定一棵二叉樹的先序遍歷序列和中序遍歷序列,要求計算該二叉樹的高度。輸入資料有多組,每組資料第一行輸入 1個正整數 n 1 n 50 為樹中結點總數,隨後 2行先後給出先序和中序遍歷序列,均是長度為 n的不包...

資料結構實驗之二叉樹四 還原二叉樹

給定一棵二叉樹的先序遍歷序列和中序遍歷序列,要求計算該二叉樹的高度。輸入資料有多組,每組資料第一行輸入 1個正整數 n 1 n 50 為樹中結點總數,隨後 2行先後給出先序和中序遍歷序列,均是長度為 n的不包含重複英文本母 區分大小寫 的字串。輸出乙個整數,即該二叉樹的高度。9 abdfghiec ...