版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
實(shí)用標(biāo)準(zhǔn)文案《用哈夫曼編碼實(shí)現(xiàn)文件壓縮》實(shí) 驗(yàn) 報(bào) 告課程名稱 數(shù)據(jù)結(jié)構(gòu)B實(shí)驗(yàn)學(xué)期 2012 至2013 學(xué)年 第 一 學(xué)期學(xué)生所在系部 計(jì)算機(jī)學(xué)院年級(jí) 2011 專業(yè)班級(jí) 信管B11-2學(xué)生姓名 學(xué)號(hào)精彩文檔實(shí)用標(biāo)準(zhǔn)文案任課教師 蘭蕓實(shí)驗(yàn)成績(jī)精彩文檔實(shí)用標(biāo)準(zhǔn)文案一、實(shí)驗(yàn)題目:用哈夫曼編碼實(shí)現(xiàn)文件壓縮二、實(shí)驗(yàn)?zāi)康模?、了解文件的概念。2、掌握線性鏈表的插入、刪除等算法。3、掌握Huffman 樹的概念及構(gòu)造方法。4、掌握二叉樹的存儲(chǔ)結(jié)構(gòu)及遍歷算法。5、利用Huffman 樹及Huffman 編碼,掌握實(shí)現(xiàn)文件壓縮的一般原理。三、實(shí)驗(yàn)設(shè)備與環(huán)境:微型計(jì)算機(jī)、Windows 系列操作系統(tǒng) 、VisualC++6.0 軟件四、實(shí)驗(yàn)內(nèi)容:輸入一些字符,即赫夫曼樹結(jié)點(diǎn)的權(quán)值,創(chuàng)建 Haffman 樹,再將各字符對(duì)應(yīng)的哈夫曼編碼寫入文件中。五、概要設(shè)計(jì):1)構(gòu)造Hufffman樹—Hufffman算法2)Huffman編碼:數(shù)據(jù)通信用的二進(jìn)制編碼編碼:根據(jù)字符出現(xiàn)頻率構(gòu)造 Huffman 樹,然后將樹中結(jié)點(diǎn)引向其左孩子的分支標(biāo)“0”,引向其右孩子的分支標(biāo)“ 1”;每個(gè)字符的編碼即為從根到每個(gè)葉子的路徑上得到的 0、1序列。3)二叉樹的存儲(chǔ)結(jié)構(gòu)typedefstructnode{datatypedata;精彩文檔實(shí)用標(biāo)準(zhǔn)文案structnode*lchild,*rchild;}BinTree;六、詳細(xì)設(shè)計(jì):1、構(gòu)造Huffman 樹步驟:Ⅰ、根據(jù)給定的 n個(gè)權(quán)值{w1,w2,??wn},構(gòu)造n棵只有根結(jié)點(diǎn)的二叉樹,令起權(quán)值為wj。Ⅱ、在森林中選取兩棵根結(jié)點(diǎn)權(quán)值最小的樹作左右子樹,構(gòu)造一棵新的二叉樹,置新二叉樹根結(jié)點(diǎn)權(quán)值為其左右子樹根結(jié)點(diǎn)權(quán)值之和。Ⅲ、在森林中刪除這兩棵樹,同時(shí)將新得到的二叉樹加入森林中。Ⅳ、重復(fù)上述兩步,直到只含一棵樹為止,這棵樹即哈夫曼樹。2、利用Select函數(shù)選出權(quán)值最小的兩個(gè)結(jié)點(diǎn)。3、利用CreatHT函數(shù)構(gòu)的建赫夫曼樹先將所有的葉子結(jié)點(diǎn)的父結(jié)點(diǎn)和左右孩子結(jié)點(diǎn)均賦值為 0,并將輸入的權(quán)值依次賦給葉子結(jié)點(diǎn)的 weight 域。從樹的最底部開始循環(huán) Select函數(shù)共n-1次,將最小權(quán)的結(jié)點(diǎn)賦給中間結(jié)點(diǎn)的左孩子,將次小權(quán)的結(jié)點(diǎn)賦給中間結(jié)點(diǎn)的右孩子。4、從葉子到根逆向求每個(gè)字符的赫夫曼編碼,開辟字符串空間,從葉子結(jié)點(diǎn)開始逆向?qū)ふ颐總€(gè)中間結(jié)點(diǎn)的左右孩子,開辟字符空間為左孩子賦值為字符 0,為右孩子賦值為字符 1,運(yùn)用strcpy 函數(shù)將所得字符依次從右到左連接于所開辟的字符串空間,所得字符串即為赫夫曼編碼。#include<stdio.h>#include<string.h>精彩文檔實(shí)用標(biāo)準(zhǔn)文案#include<stdlib.h>#include<conio.h>#include<time.h>structnode{longweight;//權(quán)值unsignedcharch;//字符intparent,lchild,rchild;charcode[256];//編碼的位數(shù)最多為256位intCodeLength;//編碼長(zhǎng)度}hfmnode[512];voidcompress();//主函數(shù)voidmain(){intchoice;printf("歡迎使用赫夫曼編碼壓縮文件!請(qǐng)選擇 1 or 2:\n");printf("1. 壓縮文件\n");printf("2. 退出!\n");scanf("%d",&choice);if(choice==1)compress();精彩文檔實(shí)用標(biāo)準(zhǔn)文案elseif(choice==2)return;elseprintf(" 輸入錯(cuò)誤!");}壓縮函數(shù)voidcompress(){inti,j;charinfile[20],outfile[20];FILE *ifp,*ofp;unsignedcharc;//longFileLength,filelength=0;intn,m;// 葉子數(shù)和結(jié)點(diǎn)數(shù)ints1,s2;// 權(quán)值最小的兩個(gè)結(jié)點(diǎn)的標(biāo)號(hào)charcodes[256];longsumlength=0;floatrate,speed;intcount=0;clock_tstart1,start2,finish1,finish2;double duration1,duration2;voide
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 江蘇省揚(yáng)州市2024-2025學(xué)年高二(上)學(xué)業(yè)水平合格性模擬考試物理試卷(含答案)
- 河北省衡水市2024-2025學(xué)年高三上學(xué)期期末物理試題(無答案)
- 2022年高考物理大一輪總復(fù)習(xí)(江蘇專版-)題庫-第二章-相互作用-第2課時(shí)
- 安徽省合肥第四十六中學(xué)2024-2025學(xué)年九年級(jí)第一學(xué)期12月份月考語文試卷(含答案)
- 【KS5U原創(chuàng)】新課標(biāo)2021年高二物理暑假作業(yè)5《恒定電流二》
- 2021貴陽市高考英語閱讀、閱讀表達(dá)一輪自練題(5)-及答案
- 四年級(jí)數(shù)學(xué)(除數(shù)是兩位數(shù))計(jì)算題專項(xiàng)練習(xí)及答案
- 【全程復(fù)習(xí)方略】2021年春高中物理選修3-4-課時(shí)達(dá)標(biāo)·效果檢測(cè)-12.2-波的圖像
- 2022部編版四年級(jí)語文下冊(cè)全冊(cè)一課一練同步練習(xí)(有答案)+知識(shí)點(diǎn)歸納
- 2025年0096北京美欣科技有限公司
- 裝飾裝修工程施工合理化建議和降低成本措施提要:完整
- 第十四章35kV變電站保護(hù)整定值計(jì)算實(shí)例
- 液態(tài)模鍛工藝介紹
- 某火車站雨棚鋼結(jié)構(gòu)施工方案
- 水泵水輪機(jī)結(jié)構(gòu)介紹
- 20-5T雙梁橋式起重機(jī)設(shè)計(jì)(全套圖紙)
- 拼音四線三格加田字格模板(A4打印版可編輯打字)
- 管道閉水試驗(yàn)記錄表自動(dòng)計(jì)算軟件
- 澳門勞工求職專用簡(jiǎn)歷表
- 慢性乙型病毒性肝炎臨床路徑
- TTYJ900運(yùn)架一體機(jī)使用說明書(一公局812)
評(píng)論
0/150
提交評(píng)論