實驗07 Huffman編碼的設計與應用實驗報告 1

2022-05-17 17:46:18 字數 1815 閱讀 7288

深圳大學實驗報告

課程名稱: 資料結構實驗與課程設計

實驗專案名稱: huffman編碼的設計與應用實驗

學院計算機與軟體學院

專業指導教師楊芳

報告人學號: 班級

實驗時間2014-10-23

實驗報告提交時間

教務處制

一、實驗目的

1、理解樹、二叉樹的鏈式儲存結構(三叉鍊錶)

2、掌握huffman樹的生成演算法

3、掌握運用huffman樹,生成對應字元的huffman編碼演算法

4、掌握運用字元的huffman編碼,將乙個字串編碼成一串huffman編碼序列方法

5、掌握利用huffman樹(編碼),對一串huffman編碼序列進行解碼的方法

二、實驗要求

熟悉c++語言程式設計

熟練使用c++語言,實現huffman編碼和解(譯)碼演算法

三、實驗內容

本次實驗內容:huffman編碼的設計與應用

1、問題描述

給定n個字元及其對應的權值,構造huffman樹,並進行huffman編碼和譯(解)碼。

構造huffman樹時,要求左子樹根的權值小於右子樹根的權值。

進行huffman編碼時,假定huffman樹的左分支上編碼為『0』,右分支上編碼為『1』。

2、演算法

構造huffman樹演算法:

⑴、根據給定的n個權值(w1, w2, …, wn)構成n棵二叉樹的集合f=,其中每棵二叉樹ti中只有乙個權值為wi的根結點

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

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

⑷、重複⑵, ⑶,直到f只含一棵樹為止

huffman編碼演算法:

⑴、從huffman樹的每乙個葉子結點開始

⑵、依次沿結點到根的路徑,判斷該結點是父親結點的左孩子還是右孩子,如果是左孩子則得到編碼『0』,否則得到編碼『1』,先得到的編碼放在後面

⑶、直到到達根結點,編碼序列即為該葉子結點對應的huffman編碼

huffman譯(解)碼演算法:

⑴、指標指向huffman樹的根結點,取第乙個huffman碼

⑵、如果huffman碼為『0』,將指標指向當前結點的左子樹的根結點;如果huffman碼為『1』,將指標指向當前結點的右子樹的根結點

⑶、如果指標指向的當前結點為葉子結點,則輸出葉子結點對應的字元;否則,取下乙個huffman碼,並返回⑵

⑷、如果huffman碼序列未結束,則返回⑴繼續解碼

3、輸入

第一行:樣本字元個數,假設為n。

第二行,n個字元(用空格隔開)

第三行,n個字元對應的權值(用空格隔開)

第四行,待編碼的字串

第五行,待解碼的huffman碼序列

4、輸入樣本

4a b c d

9 3 2 6

abcd

111001010

5、輸出

第一行,每個字元對應的huffman編碼(用空格隔開)

第二行,字串對應的huffman編碼序列

第三行,huffman碼序列對應的字串

6、輸出樣本

0 101 100 11

010110011

dcba

四、程式清單

五、程式執行時截圖

六、實驗心得與體會(實驗中遇到的問題及解決方案,或寫點感想)

注:1、報告內的專案或內容設定,可根據實際情況加以調整和補充。

2、教師批改學生實驗報告時間應在學生提交實驗報告時間後10日內。

中南大學資訊理論與編碼實驗2 實驗報告

中南大學 資訊理論與編碼 題目關於編碼的實驗 學生姓名 指導教師 學院資訊科學與工程學院 學號專業班級 2015年12月 目錄一 實驗目的3 二 實驗原理3 三 實驗內容5 四 實驗要求5 五 除錯結果6 六 實驗 8 一 實驗目的 1.掌握夏農碼和 huffman 編碼原理和過程。2.熟悉 mat...

實驗報告 霍爾效應的應用

大學物理實驗報告 一 實驗目的 1 了解霍爾效應原理以及有關霍爾器件對材料要求的知識。2 學習用對稱測量法消除副效應的影響,測量試樣的和曲線。3 確定試樣的導電型別 載流子濃度及遷移率。二 實驗器材 th h型霍爾效應實驗組合儀 由實驗儀和測試儀兩大部分組成 1 實驗儀 電磁鐵 樣品與樣品架和換向開...

網路設計與管理實驗報告

實驗3 靜態路由 預設路由 1 按你的理解,闡述路由的概念 作用,以及預設路由的功能。概念 連線網際網路中各區域網 廣域網的裝置,根據通道情況自動選擇和設定路由,以最佳路徑,按前後順序傳送訊號的裝置 作用 路由器 router 是用於連線多個邏輯上分開的網路,所謂邏輯網路是代表乙個單獨的網路或者乙個...