版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
《數(shù)據(jù)結(jié)構(gòu)與算法》課程設(shè)計(jì)(2013/2014學(xué)年第一學(xué)期17周)班級(jí):12計(jì)算機(jī)科學(xué)與技術(shù)3班2.基本要求3.測(cè)試要求3字符ABCDEFGHIJKLM頻度15字符N0PQRSTUVWXYZ頻度1811某文件中的一個(gè)符號(hào))進(jìn)行編碼。這張編碼表的特殊現(xiàn)的估算概率而建立起來的(出現(xiàn)概率高的字符使用較短的編碼,反之出現(xiàn)概率低的則使目的)。赫夫曼編碼的應(yīng)用很廣泛,利用赫夫曼樹求得的用于通信表示"0”碼,指向右子樹的分支表示“1"碼,取每條路徑上的"0”或“1"的序列作為哈夫曼編\譯碼器的主要功能是先建立哈夫曼樹,然后利用建好的哈夫曼曼編碼后進(jìn)行譯碼。在數(shù)據(jù)通信中,經(jīng)常需要將傳送的文字轉(zhuǎn)換成由二進(jìn)制字符0、1組成的二進(jìn)制串,稱之為編碼。構(gòu)造一棵哈夫曼樹,規(guī)定哈夫曼樹中的左分之代表0,右分支代表1,則從根節(jié)點(diǎn)到每個(gè)葉子節(jié)點(diǎn)所經(jīng)過的路徑分支組成的0和1的序列便為該節(jié)點(diǎn)對(duì)應(yīng)字符的編(1)其主要流程圖如圖1-1所示。開始否結(jié)點(diǎn)數(shù)是否大于1是輸出根結(jié)點(diǎn)和權(quán)值否是調(diào)用SELECT函數(shù)計(jì)算根結(jié)點(diǎn)函數(shù)父結(jié)點(diǎn)為兩子結(jié)點(diǎn)之和輸出兩子結(jié)點(diǎn)和已構(gòu)造的結(jié)點(diǎn)否是否為根結(jié)點(diǎn)?是是左子是否為空?是否是此時(shí)編碼為0右子是否為空此時(shí)編碼為0否編碼為1結(jié)束6(2)設(shè)計(jì)包含的幾個(gè)方面:①赫夫曼樹的建立赫夫曼樹的建立由赫夫曼算法的定義可知,初始森林中共有n棵只含有根結(jié)點(diǎn)的二叉樹。算法的第二步是:將當(dāng)前森林中的兩棵根結(jié)點(diǎn)權(quán)值最小的二叉樹,合并成一棵新的二叉樹;每合并一次,森林中就減少一棵樹,產(chǎn)生一個(gè)新結(jié)點(diǎn)。顯然要進(jìn)行n-1次合并,所以共產(chǎn)生n-1個(gè)新結(jié)點(diǎn),它們都是具有兩個(gè)孩子的分支結(jié)點(diǎn)。由此可知,最終求得的赫夫曼個(gè)結(jié)點(diǎn)是初始森林的n個(gè)孤立結(jié)點(diǎn)。并且赫夫曼樹中沒有度數(shù)為1的分支結(jié)點(diǎn)。我們可以利用一個(gè)大小為2n--1的一維數(shù)組來存儲(chǔ)赫夫曼樹中的結(jié)點(diǎn)。要求電文的赫夫曼編碼,必須先定義赫夫曼編碼類型,根據(jù)設(shè)計(jì)要求和實(shí)際需要定義的類型如下:charch;//存放編碼的字符charbits[N+1];//存放編碼位串intlen;//編碼的長(zhǎng)度}CodeNode;//編碼結(jié)構(gòu)體類型③代碼文件的譯碼譯碼的基本思想是:讀文件中編碼,并與原先生成的赫夫曼編碼表比較,遇到相等時(shí),即取出其對(duì)應(yīng)的字符存入一個(gè)新串中。源程序如下://義用N表示50葉節(jié)點(diǎn)數(shù)//用M表示節(jié)點(diǎn)總數(shù)當(dāng)葉節(jié)點(diǎn)數(shù)位n時(shí)總節(jié)點(diǎn)數(shù)為2n-1typedefstructtypedefstructif(ht[k].weight<minl)elseif(ht[kweightminmin2=ht[kweightrnode8if(ht[f].Ichild==c)9化while(flag)//菜單函數(shù),當(dāng)flag為0時(shí)跳出循環(huán){調(diào)試分析五、詳細(xì)設(shè)計(jì)(1)①赫夫曼樹的存儲(chǔ)結(jié)構(gòu)描述為:if(ht[k].weight<minl)(2)哈弗曼編碼printf("%c",hcd[i].cd[k])字符的編碼break(3)哈弗曼譯碼/為記錄所存儲(chǔ)這個(gè)字符的編碼個(gè)數(shù)}printf("%c",ht[i].data)(4)主函數(shù)charstr[]={A',B',C',D',E',F,G,H,T,J,K,L,M,N',O,P',Q,R'化{}//菜單函數(shù),當(dāng)flag為0時(shí)跳出循環(huán)//菜單函數(shù),當(dāng)flag為0時(shí)跳出循環(huán)printf("***********************本課程設(shè)計(jì)的評(píng)價(jià)由三部分組成,包括程序演示(50%),課程設(shè)計(jì)報(bào)告(30%),回答教師提問(20%)。
溫馨提示
- 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. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度知識(shí)產(chǎn)權(quán)運(yùn)營(yíng)居間代理合同范本
- 2025年度股權(quán)合同模板:農(nóng)業(yè)現(xiàn)代化項(xiàng)目股權(quán)合作協(xié)議
- 2025年度環(huán)保技術(shù)設(shè)備采購(gòu)合同示范文本
- 2025年度光伏發(fā)電系統(tǒng)智能化改造工程合同
- 2025年度火鍋店合伙人供應(yīng)鏈管理合同
- 2025年度智能農(nóng)業(yè)解決方案供應(yīng)合同匯編
- 2025年度腳手架施工安全風(fēng)險(xiǎn)評(píng)估與合同
- 2025年度主題酒店個(gè)人特許經(jīng)營(yíng)合同范本
- 2025年度借款反擔(dān)保擔(dān)保解除合同范本
- 2025年度環(huán)衛(wèi)保潔服務(wù)績(jī)效考核及獎(jiǎng)懲合同范本
- 26個(gè)英文字母書寫(手寫體)Word版
- GB/T 13813-2023煤礦用金屬材料摩擦火花安全性試驗(yàn)方法和判定規(guī)則
- 動(dòng)物檢疫技術(shù)-動(dòng)物檢疫的方法方式(動(dòng)物防疫與檢疫技術(shù))
- DB31 SW-Z 017-2021 上海市排水檢測(cè)井圖集
- 日語專八分類詞匯
- GB/T 707-1988熱軋槽鋼尺寸、外形、重量及允許偏差
- GB/T 33084-2016大型合金結(jié)構(gòu)鋼鍛件技術(shù)條件
- 高考英語課外積累:Hello,China《你好中國(guó)》1-20詞塊摘錄課件
- 茶文化與茶健康教學(xué)課件
- 降水預(yù)報(bào)思路和方法
- 虛位移原理PPT
評(píng)論
0/150
提交評(píng)論