基於Huffman哈夫曼編碼的檔案壓縮與解壓縮

2021-09-25 10:13:05 字數 657 閱讀 7536

一、實驗題目

用哈夫曼編碼實現檔案壓縮

二、實驗目的

了解檔案的概念

掌握線性鍊錶的插入、刪除等演算法

掌握huffman樹的概念及構造方法

掌握二叉樹的儲存結構及遍歷演算法

利用huffman樹及huffman編碼,掌握實現檔案壓縮的一般原理

三、實驗裝置與環境

微型計算機

windows 系列作業系統

visual c++6.0軟體

四、實驗內容

根據ascii碼檔案中各ascii字元出現的頻率情況建立haffman樹,再將各字元對應的哈夫曼編碼寫入檔案中,實現檔案壓縮。

五、概要設計

5.1 構造hufffman樹的方法—hufffman演算法

構造huffman樹步驟:

根據給定的n個權值,構造n棵只有根結點的二叉樹,令起權值為wj

在森林中選取兩棵根結點權值最小的樹作左右子樹,構造一棵新的二叉樹,置新二叉樹根結點權值為其左右子樹根結點權值之和

在森林中刪除這兩棵樹,同時將新得到的二叉樹加入森林中

重複上述兩步,直到只含一棵樹為止,這棵樹即哈夫曼樹

哈夫曼編碼 Huffman

huffman編碼流程 資料壓縮流程 1 讀取輸入 2 將輸入中的每個char值得出現頻率製成 3 根據頻率構造huffman編碼樹 4 構造編譯表,將輸入中的每個char值和乙個位元字串相關聯 5 將單詞查詢樹編碼為位元字串並寫入輸出流 6 將單詞總數編碼為位元字串並寫入輸出流 7 使用編譯表翻譯...

哈夫曼(Huffman)樹構造和哈夫曼編碼

n個權值,則構造出的哈夫曼樹有 n個葉子結點。n個權值分別設為 w1,w2,wn,則哈夫曼樹的構造規則為 1 根據給定的 n個權值構成n 棵二叉樹的集合 f 2 每次選擇兩個權值最小的二叉樹做子樹合併為乙個新的二叉樹,新二叉樹的權值為兩個子樹的和。直到森林中只剩一棵樹為止,該樹即為我們所求得的哈夫曼...

哈夫曼(Huffman)編碼與解碼

利用哈夫曼編碼進行資訊通訊可以大大提高通道利用率,縮短資訊傳輸時間,降低傳輸成本。但是,這要求在傳送端通過乙個編碼系統對待傳輸資料預先編碼,在接收端將傳來的資料進行解碼。對於雙工通道,每端都需要乙個完整的編碼 解碼系統。試為這樣的資訊收發站寫乙個哈夫曼的編 解碼系統。乙個完整的系統具有以下幾種操作 ...