huffman-code

    -1熱度

    1回答

    我期待在離散數學問題上有一點幫助。有什麼辦法可以縮短二叉樹,或者我必須構建下面的整個數據。 構造一個霍夫曼代碼爲英語字母表 的字母,其中的字母在典型的英國 文本的頻率如表所示。

    1熱度

    2回答

    我剛開始分配霍夫曼編碼。第一步是實現某種形式的文件處理,它將讀入要處理的文件,然後對字符進行頻率計數。 我有幾個不同的文本文件,以測試這種對抗 - 有些是字母,數字,符號大寫,小寫等 這是我到目前爲止有: import java.io.*; public class LetterFrequency { int nextChar; char c; public static void mai

    0熱度

    1回答

    例如,LZM算法的例子可能是LZMA,但霍夫曼的例子,我無法找到。我瞭解BWT在某種程度上使用它,但它也使用其他類型的算法。

    2熱度

    1回答

    我想知道可以一次又一次地應用霍夫曼編碼嗎? 例如, File A ---> (Huffman) ---> File B (smaller size than A) File B ----> (Huffman) ---> File C ? 它是邏輯正確對File B輸出再次申請霍夫曼?

    -1熱度

    1回答

    我是新來的java,我想通過在線使用代碼來理解哈夫曼編碼。我搞亂了代碼來理解它是如何工作的,因爲我沒有發現如何實現霍夫曼代碼。 我需要理解爲什麼在這段代碼中,這個人在霍夫曼樹類和字符串緩衝區中使用可比。 如果有人知道在線霍夫曼編碼甚至算法的任何好解釋,請。 我真的需要了解這段代碼。 PS:英語不是我的母語,所以很抱歉有任何混淆。 謝謝 import java.util.*; public cl

    1熱度

    1回答

    我正在構建一個Python程序來使用霍夫曼樹來壓縮/解壓縮文本文件。以前,我會將頻率表一個.json文件存儲在壓縮文件旁邊。當我讀取壓縮數據和.json時,我會從頻率表重建解壓縮樹。我認爲這是一個非常有說服力的解決方案。 但是,我遇到了一個奇怪的問題,中等長度的文件將解壓縮成看似隨機的字符串。我發現問題發生在兩個字符出現相同次數時。當我重建我的樹時,任何具有匹配頻率的角色都有可能被交換。對於大多數

    0熱度

    1回答

    我正在創建一個簡單的zip程序,可以接收任何文件並創建一個哈夫曼樹。我將每個字節的頻率保存在HashMap中,然後根據字節和頻率創建霍夫曼樹。然後,我使用ObjectOutputStream來編寫霍夫曼樹節點和一個包含原始頻率和可以解碼霍夫曼樹的位序列的對象。當運行我的測試文件時,我得到一個EOF異常。我正在關閉輸出流,但是恐怕我的代碼中有一兩個錯誤導致了這種情況。 public static v

    8熱度

    1回答

    我試圖高效地爲一組給定的字符組合使用它們的概率(即一組字符都不是任何其他後綴)來構建二進制後綴代碼。 我的基本想法是使用Huffman算法的實現來構造前綴代碼。通過反轉代碼字,我得到一個無後綴代碼。雖然這個解決方案正在工作,但它可能看起來並不理想,因爲我必須反轉可變長度的代碼字(因此我需要一個查找表結合位移)。 有沒有辦法修改霍夫曼算法,以便更有效地創建後綴代碼?

    0熱度

    1回答

    我正在爲我的類分配創建哈夫曼壓縮程序。我知道如何實現它,但由於解碼器必須使用編碼器存儲的轉換表或者從零開始創建霍夫曼樹,所以我想通過編碼器存儲完整的霍夫曼樹,因此解碼器不需要重構它。我開始知道用指針保存一個事物是不一樣的,所以我看到序列化可能會有所幫助。我的主要問題是: 1-將序列化能夠存儲樹照原樣嗎? 2-存儲樹會佔用更多空間,然後存儲轉換表並重新構建它? 我想最小化要存儲在編碼文件中的樹數據。

    3熱度

    1回答

    我在瀏覽網頁時,希望找到能夠幫助我構建HuffmanTree的東西,並偶然從http://rosettacode.org/wiki/Huffman_coding#Java中找到了此代碼。 我是Java新手,無法使用它,因爲它超出了我的級別,但我仍然對它感興趣(因爲它是如此短而看似有效的代碼),我試着通讀它希望至少能夠理解它(注:我失敗了​​)。 但有一段代碼引起了我的注意:「instanceof」