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

2022-09-25 07:42:02 字數 3532 閱讀 6341

廣東工業大學華立學院

課程設計(**)

課程名稱_________資料結構

題目名稱_______ _哈夫曼編碼

學生學部(系)_資訊與計算機學部______

專業班級_______09計算機2班_________

學號學生姓名

指導教師

2010 年 12 月23 日

廣東工業大學華立學院

課程設計(**)任務書

一、課程設計(**)程序安排

二、應收集的資料及主要參考文獻

[1]嚴蔚敏,吳偉民.《資料結構:c語言版》.北京:清華大學出版社,1997.

[2] 耿國華.《資料結構》.北京:高等教育出版社,2005.

[3] 姚伯元.《課程設計(**)規範化管理與培養學生綜合素質》.中國高等教育網教學研究,2005.

[4] 嚴蔚敏,陳文博編著.資料結構及應用演算法教程.北京:清華大學出版社,2001

[5] 蘇仕華編著.資料結構與演算法分析.合肥:中國科技大學出版社,2004

[6] 蘇仕華等著.資料結構課程設計.北京:機械工業出版社,2005

發出任務書日期: 20010 年 11 月 20 日指導教師簽名:

計畫完成日期: 20010 年 12 月 23 日教學單位責任人簽章:

摘要 隨著計算機的普遍應用與日益發展,其應用早已不侷限於簡單的數值運算,而涉及到問題的分析、資料結構框架的設計以及設計最短路線等複雜的非數值處理和操作。演算法與資料結構的學習就是為以後利用計算機資源高效地開發非數值處理的電腦程式打下堅實的理論、方法和技術基礎。

演算法與資料結構旨在分析研究計算機加工的資料物件的特性,以便選擇適當的資料結構和儲存結構,從而使建立在其上的解決問題的演算法達到最優。

資料結構是在整個電腦科學與技術領域上廣泛被使用的術語。它用來反映乙個資料的內部構成,即乙個資料由那些成分資料構成,以什麼方式構成,呈什麼結構。資料結構有邏輯上的資料結構和物理上的資料結構之分。

邏輯上的資料結構反映成分資料之間的邏輯關係,而物理上的資料結構反映成分資料在計算機內部的儲存安排。資料結構是資料存在的形式。

資料結構是在整個電腦科學與技術領域上廣泛被使用的術語。它用來反映乙個資料的內部構成,即乙個資料由那些成分資料構成,以什麼方式構成,呈什麼結構。資料結構有邏輯上的資料結構和物理上的資料結構之分。

邏輯上的資料結構反映成分資料之間的邏輯關係,而物理上的資料結構反映成分資料在計算機內部的儲存安排。資料結構是資料存在的形式。

《資料結構》主要介紹一些最常用的資料結構,闡明各種資料結構內在的邏輯關係,討論其在計算機中的儲存表示,以及在其上進行各種運算時的實現演算法,並對演算法的效率進行簡單的分析和討論。資料結構是介於數學、計算機軟體和計算機硬體之間的一門計算機專業的核心課程,它是計算機程式設計、資料庫、作業系統、編譯原理及人工智慧等的重要基礎,廣泛的應用於資訊學、系統工程等各種領域。

學習資料結構是為了將實際問題中所涉及的物件在計算機中表示出來並對它們進行處理。通過課程設計可以提高學生的思維能力,促進學生的綜合應用能力和專業素質的提高。 目錄

1、設計目的 1

2、需求分析 1

2.1選題的意義及背景 1

2.2 輸入/輸出形式和輸出值的範圍 2

3、概要設計 2

3.1設計思想 2

3.2函式間的關係 2

4、詳細設計 2

4.1哈夫曼的主要結構 2

4.1.1結構定義: 2

4.1.2主要函式宣告及功能描述如下 3

4.2源程式 4

4.2.1標頭檔案 4

4.2.2原始檔 5

5、程式測試結果 13

6、總結 15

7、參考文獻 15

資料結構作為一門學科主要研究資料的各種邏輯結構和儲存結構,以及對資料的各種操作。因此,主要有三個方面的內容:資料的邏輯結構;資料的物理儲存結構;對資料的操作(或演算法)。

通常,演算法的設計取決於資料的邏輯結構,演算法的實現取決於資料的物理儲存結構。資料結構是資訊的一種組織方式,其目的是為了提高演算法的效率,它通常與一組演算法的集合相對應,通過這組演算法集合可以對資料結構中的資料進行某種操作。

在當今資訊時代,資訊科技己成為當代知識經濟的核心技術。我們時刻都在和資料打交道。比如人們在外出工作時找最短路徑,在銀行查詢存款、通過網際網路查新聞、以及遠端教育報名等,所有這些都在與資料發生關係。

實際上,現實世界中的實體經過抽象以後,就可以成為計算機上所處理的資料。

。資料結構是介於數學、計算機軟體和計算機硬體之間的一門計算機專業的核心課程,它是計算機程式設計、資料庫、作業系統、編譯原理及人工智慧等的重要基礎,廣泛的應用於資訊學、系統工程等各種領域。

學習資料結構是為了將實際問題中所涉及的物件在計算機中表示出來並對它們進行處理。通過課程設計可以提高學生的思維能力,促進學生的綜合應用能力和專業素質的提高。通過此次課程設計主要達到以下目的:

1、了解並掌握資料結構與演算法的設計方法,具備初步的獨立分析和設計能力;

2、初步掌握軟體開發過程的問題分析、系統設計、程式編碼、測試等基本方法和技能;

3、提高綜合運用所學的理論知識和方法獨立分析和解決問題的能力;

4、訓練用系統的觀點和軟體開發一般規範進行軟體開發,培養軟體工作者所應具備的科學的工作方法和作風。

鍛鍊我們的編碼能力,真正理解資料結構的編碼思想,並且鍛鍊我們的動手能力和成員間的配合,提高程式編寫能力。

在資訊傳遞時,希望長度能盡可能短,即採用最短碼。赫夫曼編碼的應用,就是採用這種有效的資料壓縮技術可以節省資料檔案的儲存空間和計算機網路的傳送時間。

輸入資訊以載入存檔的檔案為方式,載入不成功,提示出錯資訊,載入成功後,系統對其編碼,並按照選擇對各種相關資訊存檔。

哈夫曼樹用鄰接矩陣作為儲存結構,借助靜態鍊錶來實現遍歷。

哈夫曼系統,函式間的關係如圖所示:

3-1哈夫曼編碼問題中函式間的關係

#define maxvalue 1000//定義最大權值

#define maxbit 100//定義哈夫曼樹中葉子結點個數

typedef struct

totalnode; //統計結點,包括字元種類和出現次數

typedef struct

total; //統計結構體,包括統計陣列和字元種類數

typedef struct

message; //資訊結構體,包括字元陣列和總字元數

typedef structlocking; //哈夫曼編碼後的密文資訊

typedef struct

hnodetype; //哈夫曼樹結點型別,包括左右孩子,權值和資訊

typedef struct

hcodetype; //哈夫曼編碼結構體,包括編碼陣列和起始位

4.1.2主要函式宣告及功能描述如下:

void reading_file(message *message);

從檔案中讀取資訊

void writing_file(message *message);

將資訊寫進檔案

void total_message(message *message,total *total);

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

淮海工學院電腦科學系 實驗報告書 課程名 資料結構 題目 樹形資料結構實驗 班級 軟體112 學號 姓名樹型資料結構實驗報告要求 1目的與要求 1 熟練掌握huffman樹的建立演算法與程式設計實現 2 熟練掌握huffman編碼演算法的實現與程式設計應用 3 建立較為實用的通訊報文huffman編...

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

資料結構與演算法 課程設計 2009 2010學年第二學期第20周 指導教師 王老師 班級 電腦科學與技術 3 班 學號 姓名 資料結構與演算法 課程設計 一 前言 1 摘要 2 資料結構與演算法 課程設計任務書 二 實驗目的 三 題目 赫夫曼編碼 解碼器 1 問題描述 2 基本要求 3 測試要求 ...

資料結構課程設計總結報告哈夫曼編碼解碼

4.3 流程圖 6 1.問題描述 設計乙個利用哈夫曼演算法的編碼和解碼系統,重複地顯示並處理以下專案,直到選擇退出為止。1 初始化 鍵盤輸入字符集大小n n個字元和n個權值,建立哈夫曼樹 2 編碼 利用建好的哈夫曼樹生成哈夫曼編碼 3 輸出編碼 4 顯示哈夫曼樹 5 介面設計的優化 6 設字符集及頻...