while(count != 25) {
tail = head;
new_node = (binary_node*)malloc(sizeof(binary_node));
while(tail->next != NULL)
tail = tail->next;
tail->next = new_node;
new_node->element.frequency = (p->element.frequency + q->element.frequency);
new_node->LSON = p;
new_node->LSON->RTAG = 0;
new_node->RSON = q;
new_node->RSON->RTAG = 1;
head = new_node;
n = n - 1;
head = q->next;
sort(n, head);
p = head;
q = p->next;
count++;
}
上記のコードは、ハフマンツリーを生成するはずです。しかし、形成される二分木は正しくありません。文字を含むすべてのノードはリーフまたは息子のないノードである必要がありますが、一部のアルファベットノードにはまだ息子がいます。コードの何が間違っていますか?不正なバイナリツリー
はこの宿題ですか? – erisco
nope。私はクラスでそれをすることができないので、今私はハフマンツリーを作成しようとしています。 – shinshin32
私は単一の変数宣言もコメントも表示されません。私はいくつかのタイプと意味を推測することができますが、ESPによるデバッグは楽しいものではありません。より完全なコードを表示し、意味のあるコメントを追加してください。 – abelenky