我正在基於頻率表的哈夫曼樹。頻率表是通過計算給定字符串中字符的頻率並將相應項(字符和頻率)放入LinkedList中生成的。然後我需要按照頻率的順序將這些項目放入哈夫曼樹中。我知道它背後的邏輯是確保每個子樹都有右和左節點,添加它們的頻率,用它們添加的頻率創建一個根節點,將下一個頻率分別放置在左側和右側樹中,並重復此過程直到沒有更多的頻率,並且子樹與增加它們的頻率的根連接;我遇到的麻煩是搞清楚如何實現代碼。麻煩理解哈夫曼樹算法
代碼是相當廣泛的,所以我寧願避免發佈所有它,總的佈局是我有一個HuffmanFrequencyTable類,允許我建立表,一個HuffmanTreeNode類,允許我們創建節點放置在樹和HuffmanTree類,幫助我們創建實際的樹。一個編碼類然後輸入一個字符串並使用它創建的HuffmanFrequencyTable從字符串中建立樹。這是一個家庭作業問題,所以請不要提供解決方案,我只是希望能夠幫助理清其代碼中的邏輯。
現在,我正在創建一個放置在樹中的字符數組,查找表中不在數組中的字符的最低頻率,並嘗試將它們放在樹葉中。當基礎樹葉在子樹中已滿時,我試圖添加這些值,創建一個節點並繼續樹狀結構。我爲此使用for循環。這看起來是否是正確的開始?
謝謝你讓我知道我沒有脫落,只是不想繼續走錯路。退後一步,深吸一口氣,擺脫了我代碼中的垃圾,認爲它很好。謝謝:) –