huffman-code

    1熱度

    1回答

    當我發送要解碼的一串比特時,似乎需要一個額外的比特才能正確解碼。我已經預先打印出樹,並且我已經在紙上畫了樹,以確保我沒有錯過任何東西。預訂和我繪製的樹匹配,但生成正確字母所需的位已關閉。 public void decode(String code){ String result = ""; TreeNode current = root; current.preOr

    0熱度

    1回答

    嗯,我試圖實現功能,將決定是否給予樹匹配壓縮文件,以及'嘗試'是一點「歪曲」我只是不知道如何實現這樣的功能。 我無法弄清楚,因爲有時壓縮文件的字節可以匹配樹從其他文件,任何想法是值得歡迎的。

    0熱度

    2回答

    我很難找到一種方法來爲字母分配0和1。我修復了我的優先級隊列,以便它將使所有節點都成爲優先級最高的樹。我對如何分配每個字母的價值沒有意見。我正在考慮使用中序遍歷,但是在將這些位添加到字母時,我堅持了代碼的外觀。所有幫助非常感謝!我的節點類如下: private class Node{ Node right; Node left; Node parent; c

    0熱度

    2回答

    構建二叉樹我有格式化像這樣一個二叉樹文件: 121 00 99 010 120 011 97 10 98 11 如果採用以下格式(ASCII VAL)超過(遍歷代碼)。 0 =左邊,1 =正確的 所以ASCII值121將被存儲在像一棵樹: -1 / -1 ... / 121 如何正確構建呢? 這是我當前如何做它: TreeNode root; public T

    0熱度

    1回答

    我正在寫一個代碼,需要一個單詞,如「abracadabra」,並將其變成一個哈夫曼樹。我理解霍夫曼樹的原理,但現在我所接觸到的是我將如何首先將abracadabra實施到其中。 我老師告訴我們去的方法是有兩個單獨的隊列/數組。第一個存儲每個字母的金額,另一個按金額(從最高到最低)存儲字母,當字母具有相同的值時,它們按字母順序排序。 所以它會導致:5,2,2,1,1和a,b,r,c,d 我確信他希望

    -1熱度

    1回答

    我對創建的霍夫曼解碼函數有點麻煩。我只是想知道如果有人知道我的程序爲什麼會產生無限循環。以下是我的功能和我如何操作它。當計數器命中8時,它應該退出功能,因爲沒有更多的位要讀取。這是它: HuffmanNode *rodee = createTree(freqArray2, 256); //holds the huffman tree HuffmanNode *temporaryNode; //t

    1熱度

    2回答

    我已經編寫了一個程序,將文章編碼爲huffman代碼並輸出一個代碼表。 H:000 d:1011 e:100 l:11 o:01 r:1010 w:001 Total bits:27 Encoded code:000100111101001011010111011 我想編寫一個程序,將該文件作爲輸入並對其進行解碼。 但我不知道如何重建它。 我的問題是如何重新編制霍夫曼樹?

    3熱度

    1回答

    好吧我試圖使我自己的豪夫曼代碼,當我試圖用遞歸方法打印每個字母的相應代碼時,我有一個問題。 (此時我已經創建了一個BinaryTree並且root不是NULL) 每個節點都有一個值,如果它是一個葉子,它也有一個字母,所以我開始沿着樹節點逐個往下看,但似乎在遞歸方法中,節點只是忘記了他是誰,或者我不知道,我嘗試了很多東西。 :S 遞歸方法是createCode(Node * actual,strin

    0熱度

    1回答

    我無法正確從Huffman樹中彈出。現在我正在創建一個基於minheap的霍夫曼樹,我想要執行以下操作: 如果我們假設A和B是兩個不同的子樹,我會說如果A的頻率是小於B的頻率。 如果它們具有相同的頻率,那麼我會在A的任何葉節點中找到ASCII值最小的字符。然後,我會看到A中的最小字符葉節點是否小於B葉節點中的最小字符葉節點。如果是的話,我會在B之前從A彈出。如果沒有,我會彈出B. < - 這是我遇

    6熱度

    2回答

    我正在編寫一個Huffman編碼程序,我幾乎完成了,但我陷入了一個無限遞歸循環。有沒有人有一個想法,這是錯誤的? 這是我收到的錯誤: Exception in thread "main" java.lang.StackOverflowError at sun.nio.cs.SingleByteEncoder.encodeLoop(SingleByteEncoder.java:130) at j