資料結構課程設計哈夫曼編碼

2022-09-23 21:21:04 字數 2126 閱讀 5248

淮海工學院電腦科學系

實驗報告書

課程名: 《資料結構》

題目: 樹形資料結構實驗

班級: 軟體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 設字符集及頻...