深圳大學實驗報告
課程名稱: 資料結構實驗與課程設計
實驗專案名稱: 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 是用於連線多個邏輯上分開的網路,所謂邏輯網路是代表乙個單獨的網路或者乙個...