salut J'écrivais un BST et ai écrit la fonction suivante pour ajouter l'enfant.Quel est le problème avec cette fonction
void addChild(T value)
{
temp = root;
while(0 != temp)
{
temp1 = temp;
if(value > temp->getValue())
temp = temp->getRightChild();
else
temp = temp->getLeftChild();
}
if(temp1->getValue() > value)
{
temp1->setRightChild(new Child(value));
}
else
{
temp1->setLeftChild(new Child(value));
}
}
Je donne "23 12 122 1 121 15" comme entrée. La racine est le noeud 23 que je crée dans le constructeur de la classe.
Problème: Lorsque je fais une traversée d'arbre, je ne reçois que 23 et 15 comme sortie. Question: Qu'est-ce que je fais de mal dans cette fonction?
peut-être y a-t-il un problème avec votre fonction de traversée? De plus, je ne vois pas de déclaration pour les variables 'temp' et' temp1'. Sont-ils globaux ?? Quoi qu'il en soit, je suggère d'utiliser un débogueur (par exemple 'gdb') pour suivre le code. Il devrait être assez simple de trouver le problème – davka