1.設有字符集:s=,給定乙個包含26個英文本母的檔案,統計每個字元出現的概率。
char s = new char;
double sum = new double[26];
int count = 0;
for (int i = 0; i < 26; i++)
file file = new file("d:\\test", "helloworld.txt");
reader reader2 = new filereader(file);
string result = "";
while (reader2.ready())
char text = result.tochararray();
for (int j = 0; j < text.length; j++) }}
for (int i = 0; i < sum.length; i++)
2.根據計算的概率構造一顆哈夫曼樹
harf h = new harf();
node root = h.createtree(nodes);
h.setcode(root);
public class harf
return nodes.get(0);
}
3.對英文檔案進行編碼,輸出乙個編碼後的檔案。
public void setcode(node root)
if (root.rightchild != null)
4.對編碼檔案進行解碼,輸出乙個解碼後的檔案。
哈夫曼編碼實踐
課程 程式設計與資料結構 班級 1823 姓名 王美皓 學號 20182322 實驗教師 王志強 實驗日期 2019年11月15日 必修 選修 必修 設有字符集 s 給定乙個包含26個英文本母的檔案,統計每個字元出現的概率,根據計算的概率構造一顆哈夫曼樹。並完成對英文檔案的編碼和解碼。要求 準備乙個...
哈夫曼編碼 哈夫曼樹
1.定義 哈夫曼編碼主要用於資料壓縮。哈夫曼編碼是一種可變長編碼。該編碼將出現頻率高的字元,使用短編碼 將出現頻率低的字元,使用長編碼。變長編碼的主要問題是,必須實現非字首編碼,即在乙個字符集中,任何乙個字元的編碼都不是另乙個字元編碼的字首。如 0 10就是非字首編碼,而0 01不是非字首編碼。2....
哈夫曼樹 哈夫曼編碼
定義從a結點到b結點所經過的分支序列為從a結點到b結點的路徑 定義從a結點到b結點所進過的分支個數為從a結點到b結點的路徑長度 從二叉樹的根結點到二叉樹中所有結點的路徑長度紙盒為該二叉樹的路徑長度 huffman樹 帶權值路徑長度最小的擴充二叉樹應是權值大的外界點舉例根結點最近的擴充二叉樹,該樹即為...