-1
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++;
}
上面的代碼應該生成一個huffman樹。但是,形成的二叉樹不正確。所有包含字母的節點應該是沒有兒子的葉或節點,但一些字母節點仍然有兒子。代碼有什麼問題?不正確的二叉樹
正在做作業嗎? – erisco
nope。我現在只想創建一個哈夫曼樹,因爲我不能在課堂上做。 – shinshin32
我沒有看到單個變量聲明,也沒有看到任何註釋。雖然我可以猜測一些類型和含義,但通過ESP進行調試並不好玩。請顯示更完整的代碼,並請添加有意義的評論。 – abelenky