哈夫曼編碼譯碼課程設(shè)計報告_第1頁
哈夫曼編碼譯碼課程設(shè)計報告_第2頁
哈夫曼編碼譯碼課程設(shè)計報告_第3頁
哈夫曼編碼譯碼課程設(shè)計報告_第4頁
哈夫曼編碼譯碼課程設(shè)計報告_第5頁
已閱讀5頁,還剩1頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

哈夫曼編碼譯碼課程設(shè)計報告《數(shù)據(jù)結(jié)構(gòu)》課程設(shè)計——赫夫曼編碼/譯碼器設(shè)計

指導(dǎo)教師:李文書、周維達(dá)班級:10電信實(shí)驗(yàn)班學(xué)號:Q10600132姓名:王彬彬一、 實(shí)驗(yàn)?zāi)康?、 提高分析問題、解決問題的能力,進(jìn)一步鞏固數(shù)據(jù)結(jié)構(gòu)各種原理與方法。2、 熟悉掌握一門計算機(jī)語言,能夠進(jìn)行數(shù)據(jù)算法設(shè)計。二、 實(shí)驗(yàn)原理哈夫曼編'譯碼器的主要功能是先建立哈夫曼樹,然后利用建好的哈夫曼樹生成哈夫曼編碼后進(jìn)行譯碼。在數(shù)據(jù)通信中,經(jīng)常需要將傳送的文字轉(zhuǎn)換成由二進(jìn)制字符0、1組成的二進(jìn)制串,稱之為編碼。構(gòu)造一棵哈夫曼樹,規(guī)定哈夫曼樹中的左分之代表0,右分支代表1,則從根節(jié)點(diǎn)到每個葉子節(jié)點(diǎn)所經(jīng)過的路徑分支組成的0和1的序列便為該節(jié)點(diǎn)對應(yīng)字符的編碼,稱之為哈夫曼編碼。最簡單的二進(jìn)制編碼方式是等長編碼。若采用不等長編碼,讓出現(xiàn)頻率高的字符具有較短的編碼,讓出現(xiàn)頻率低的字符具有較長的編碼,這樣可能縮短傳送電文的總長度。哈夫曼樹課用于構(gòu)造使電文的編碼總長最短的編碼方案。主要流程圖如下:〔?-開始/1伊一,調(diào)用SELECT函數(shù)'~~計算根結(jié)父結(jié)點(diǎn)為兩子結(jié)點(diǎn)編碼為1 J一結(jié)^一一三、實(shí)驗(yàn)步驟1:寫好流程圖,設(shè)計實(shí)驗(yàn)方案。2:初始化,從終端讀入字符集大小n,以及n個字符和n個權(quán)值,建立哈夫曼樹,并將它存于文件HuofumanTree中。3:編碼。利用已建好的哈夫曼樹,對文件ToBeTran中的正文進(jìn)行編碼,然后將結(jié)果存入文件CodeFile中。4:譯碼。利用已建好的哈夫曼樹將文件CodeFile中的代碼進(jìn)行譯碼,結(jié)果存入文件Textfile中。5:印代碼文件(Print).將文件CodeFile以緊湊格式顯示在終端上,每行50個代碼。同時將此字符形式的編碼文件寫入文件CodePrint中。6:印哈夫曼樹(Treeprinting).將已在內(nèi)存中的哈夫曼樹以直觀的方式(比如樹)顯示在終端上,同時將此字符形式的哈夫曼樹寫入文件TreePrint中。具體函數(shù)如下:1:Initialization()初始化2:Encoding()編碼3:Decoding()譯碼4:Print_file() 打印代碼文件5:search(k,j,p)搜索二叉樹6:Print_tree()打印二叉樹7

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論