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++;
}
Le code ci-dessus devrait générer un arbre de Huffman. Cependant, l'arbre binaire formé est incorrect. Tous les nœuds qui contiennent une lettre doivent être une feuille ou un nœud sans fils mais certains nœuds d'alphabet ont encore des fils. Quel est le problème avec le code?arbre binaire incorrect
est ce devoir? – erisco
non. J'essaie seulement de créer un arbre de Huffman en ce moment parce que je ne peux pas le faire en classe. – shinshin32
Je ne vois pas une seule déclaration de variable, ni aucun commentaire. Bien que je puisse deviner certains types et significations, le débogage par ESP n'est pas amusant. Veuillez afficher un code plus complet et ajouter des commentaires pertinents. – abelenky