1,哈夫曼編碼/譯碼器利用哈夫曼編碼進行資訊通信可以大大提高信道利用率,縮短資訊傳輸時間,降低傳輸成本。但是,這要求在發送端通過一個編碼系統對待傳資料預先編碼,在接收端將傳來的資料進行譯碼(復原).對于雙工信道(即可以雙向傳輸資訊的信道),每端都需要一個完整的編/譯碼系統。試為這樣的資訊收發站寫一個哈夫曼編/譯碼系統。
[基本要求]一個完整的系統應具有以下功能:
(1)1:初始化(Initialization).從終端讀入字符集大小n,以及n個字符和n個權值,建立哈夫曼樹,并將它存于檔案hfmTree中。
(2)E:編碼(Encoding).利用已建好的哈夫曼樹(如不在記憶體,則從檔案htmT ree中讀入),對檔案ToBeTran中的正文進行編碼,然后將結果存入檔案CodeFile i
(3)D:譯碼(Decoding).利用已建好的哈夫曼樹將檔案CodeFile中的代碼進行譯碼,結果存入檔案TextFile中。
(4)P:列印代碼檔案(Print).將檔案CodeFile以緊湊格式顯示在終端上,每行5 0個代碼。同時將此字符形式的編碼寫入檔案CodePrint中。
(5)T:列印哈夫曼樹(Tree Printing).將已在記憶體中的哈夫曼樹以直觀的方式(樹或凹入表形式)顯示在終端上,同時將此字符形式的哈夫曼樹寫入檔案TreePrin t中。
[測驗資料]
(1)資料一:已知某系統在通信聯絡中只可能出現8種字符,其概率分別為0.05,0.29,0.07,0.08,0.14,0.23,0.03,0.11,以此設計哈夫曼編碼。利用此資料對程式進行除錯。
(2)用下表給出的字符集和頻度的實際統計資料建立哈夫曼樹,并實作以下報文的編碼和譯碼:“THIS PROGRAM IS MY FAVORITE".64 13 22 32 103 32 57 63 80
[實作提示]
(1)檔案CodeFile的基型別可以設為子界型bit=-0..10.
(2)用戶界面可以設計為“選單”方式:顯示上述功能符號,再加上“Q",表示運行Q uit,當用戶鍵入一個功能符,功能執行完畢后再回傳選單。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/233287.html
標籤:新技術前沿
下一篇:演化博弈
