簡體   English   中英

霍夫曼算法需要幫助存儲字符代碼

[英]huffman algorithm needs help in storing char code

我已經編寫了程序,以獲取程序輸出中所示的每個字符的代碼。

輸入一些文本:nslfaslfjasfj text =“ nslfaslfjasfj”

a2

f:3

j:2

l:2

n:1

s:3

霍夫曼算法下面是“ CHAR CODE”:

編號:111

編號:110

f碼:10

代碼:01

l碼:001

碼:000

我的下一步應該是將上述內容存儲在結構中,並將其與我的原始文本=“ nslfaslfjasfj”進行比較,以編碼為“ 11101 ..... so on”。

我在結構中存儲“ CHAR CODE”時發現問題。 是否應將其存儲為字符串s =“ 111”之類的字符串,然后存儲在結構中?..在此先感謝。

通常,霍夫曼編碼的目的是減少消息的長度,即壓縮消息。 這意味着您要寫入位,而不是字符“ 0”和“ 1”。 因此,將字符代碼也存儲為位,並使用位操作將其傳輸到流中是很有意義的。 為每個元素存儲一對(字符代碼,代碼長度)足以構成編碼。

話雖如此,您可以按照建議使用字符串來完成。 沒錯,它可能會使調試起來更容易一些,但性能會更差。

您將需要制作某種“ BitWriter”。 我們在我的大學的數據結構課程中介紹了Java中按位I / O進行霍夫曼編碼的主題, 此處免費提供講座幻燈片 顯然Java!= C,但是概念是相同的。

考慮到您嘗試壓縮某些東西,使用字符串將是一個可怕的想法。 您需要將char代碼存儲為原始二進制文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM