一、實驗題目
用哈夫曼編碼實現檔案壓縮
二、實驗目的
了解檔案的概念
掌握線性鍊錶的插入、刪除等演算法
掌握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)編碼與解碼
利用哈夫曼編碼進行資訊通訊可以大大提高通道利用率,縮短資訊傳輸時間,降低傳輸成本。但是,這要求在傳送端通過乙個編碼系統對待傳輸資料預先編碼,在接收端將傳來的資料進行解碼。對於雙工通道,每端都需要乙個完整的編碼 解碼系統。試為這樣的資訊收發站寫乙個哈夫曼的編 解碼系統。乙個完整的系統具有以下幾種操作 ...