宿題の問題をどうするか理解しようとしています。Java でメッセージをエンコードおよびデコードするハフマン ツリーを作成しようとしています。私は文字列と周波数を与えられています。
[a=10, b=15, c=12, e=3, nl=4, sp=13, t=1].
ハフマン ツリーを使用すると、最も低い 2 つの周波数を取得し、それらの周波数の合計を親としてツリーにすることができます。Priority Queue を使用すると、すべての Frequency をそれに挿入し、remove()
メソッドを使用して 2 つの最も低い Frequency を取り出すことができることを理解しています。次に、それらを合計して両方の重みを取得し、その重みをキューに挿入して繰り返します。
最終的なツリーは次の重みを保持する必要があります
[58=root, root.left = 33, root.right = 25]
[33.left = 18, 18.left = 8, 8.left = 4]
頻度でツリーを作成し、ツリーを表示できるハフマンツリーコードの実装を開始する方法さえ正確にはわかりません。私は他のコードを見てきましたが、それらはすべてストリーミング入力コードなどから作成しているようです。
どんな助けでも私を動かすのに素晴らしいでしょう。前もって感謝します!
次のような形式で印刷することを想定しています: (pre-order traversal)
58
- 33
- - 18
- - - 8
- - - - 4
- - - - - 1:t
- - - - - 3:e
- - - - 4:nl
- - - 10:a
- - 15:b
- 25
- - 12:c
- - 13:sp