淮海工學院電腦科學系
實驗報告書
課程名: 《資料結構》
題目: 樹形資料結構實驗
班級: 軟體112
學號:姓名樹型資料結構實驗報告要求
1目的與要求:
1)熟練掌握huffman樹的建立演算法與程式設計實現;
2)熟練掌握huffman編碼演算法的實現與程式設計應用;
3)建立較為實用的通訊報文huffman編碼系統和解碼系統;
4)按照實驗題目要求獨立正確地完成實驗內容(提交程式清單及相關實驗資料與執行結果);
5)認真書寫實驗報告,並按時提交。
2 實驗內容或題目
實驗四:樹型資料結構實驗——建立通訊報文編碼與解碼系統
構造通訊報文編碼和解碼系統(要求huffman編碼與解碼)。條件:
1、使用英文報文實施加密通訊。設組成報文的字符集為26個英文本母(不分大小寫)和兩個標點符號字元「,」、「.」和乙個空格字元(共29個字元)。
2、字符集中每個字元(含字母和兩個標點符號)的使用概率自己根據英文行文合理給出。
3、以字符集中各個字元為葉結點、字元的使用頻率為權重構造huffman樹,並求得各個字元的huffman編碼(參考教材p147教材演算法6.12)。同時,輸出構造的huffman樹和字元編碼結果。
4、在上述通訊報文編碼和解碼系統中實現:輸入一報文原文(明文),給出要傳送的密碼報文(密文);輸入一密文(0、1序列),輸出對應的報文原文(明文)。其中報文原文或編碼序列自己設定,盡量是一句話或一段文字的對應編碼序列,這樣可以驗證輸出結果的正確性。
3 實驗步驟與源程式
步驟先建立乙個huffman樹,然後輸入相應的英文本母,再根據英文行文合理給出它的使用概率,這樣編碼就可以實現明文和密文的轉換。
源**#include <>
#include <>
#include <>
#include <>
#define overflow -1
typedef struct
htnode,*huffmantree;
typedef char * *huffmancode;
void select(huffmantree &ht,int i,int &s1,int &s2)
for(j = 1; j < i; j++)
for(k = 1; k <= i; k++)
for(j = 1; j < i; j++)
void huffmancoding(huffmantree &ht,huffmancode &hc,char *zi,float *w,int n)
for(;i<=m;++i,++p)
for(i=n+1;i<=m;++i)
hc=(huffmancode)malloc((n+1)*sizeof(char *));
cd=(char*)malloc(n*sizeof(char));
cd[n-1]='\0';
for(i=1;i<=n;++i)
free(cd);
}void main()
;huffmancoding(ht,hc,zi,w,31);
cout< cout<<"char weight huffmancode "< for(i=1;i<=29;i++)
cout< printf("please input the text:");
gets(c);
printf("the code is:");
for(i=0; i
cout< cout<<"enter the code:";
cin>>c;
j=strlen(c);
yu=61;
i=1;
cout<<"the text is:";
while(i <= j)
cout< yu = 61;
}cout<}
4 測試資料與實驗結果(可以抓圖貼上)
5 結果分析與實驗體會
1.程式設計時要細心,避免不必要的錯誤;
2.要先熟悉書本上的內容,否則編譯會有困難;
樹的應用**較長,編寫時要細心,否則執行時錯誤太多,不容易改。
4.不能太過死板,要靈活運用所學知識。
資料結構課程設計哈夫曼編碼
資料結構與演算法 課程設計 2009 2010學年第二學期第20周 指導教師 王老師 班級 電腦科學與技術 3 班 學號 姓名 資料結構與演算法 課程設計 一 前言 1 摘要 2 資料結構與演算法 課程設計任務書 二 實驗目的 三 題目 赫夫曼編碼 解碼器 1 問題描述 2 基本要求 3 測試要求 ...
資料結構課程設計報告 哈夫曼編碼
廣東工業大學華立學院 課程設計 課程名稱 資料結構 題目名稱 哈夫曼編碼 學生學部 系 資訊與計算機學部 專業班級 09計算機2班 學號學生姓名 指導教師 2010 年 12 月23 日 廣東工業大學華立學院 課程設計 任務書 一 課程設計 程序安排 二 應收集的資料及主要參考文獻 1 嚴蔚敏,吳偉...
資料結構課程設計總結報告哈夫曼編碼解碼
4.3 流程圖 6 1.問題描述 設計乙個利用哈夫曼演算法的編碼和解碼系統,重複地顯示並處理以下專案,直到選擇退出為止。1 初始化 鍵盤輸入字符集大小n n個字元和n個權值,建立哈夫曼樹 2 編碼 利用建好的哈夫曼樹生成哈夫曼編碼 3 輸出編碼 4 顯示哈夫曼樹 5 介面設計的優化 6 設字符集及頻...