私はここでさまざまなことを試してきましたが、うまくいかないようです。入力は「abbcccddddeeeee」で、リンクされたリスト a、b、c、d、e がそれぞれ頻度 1、2、3、4、5 で返されます。
ただし、何らかの理由で、実行したさまざまなテストに基づいて、次のツリーが表示されるようです。
f15
/ \
f6 f9
/ \
d4 e5
/ \
f3 c3
/ \
a1 b2
public static HTree createHuffmanTree(HLinkedList list)
{
while (list.size() != 1)
{
list = getSortedLinkedList(list);
HTreeNode p = list.head;
HTreeNode q = p.next;
HTreeNode r = new HTreeNode('f');
r.left = p;
r.right = q;
r.frequency = (p.frequency + q.frequency);
list.insertIntoPosition(r, 2);
list.remove(0);
list.remove(0);
list = getSortedLinkedList(list);
}
return new HTree(list.head);
}
誰かが私を助けてくれたら最高です。私は信じられないほど、信じられないほどイライラしています。
ありがとうございました!