J'ai trois fonctions Managa un arbre binaire:erreur de pointeur d'arbre binaire
static void insertion(Noeud* &top, Noeud *newNoeud)
{
if(top == NULL)
top = newNoeud;
else if(newNoeud->nbr < top->nbr)
insertion(top->left, newNoeud);
else
insertion(top->right, newNoeud);
}
static void affichage(Noeud* &top) //displaying
{
if(top != NULL)
{
affichage(top->left);
affichage(top->right);
cout << "\n" << top->nbr;
}
}
static Noeud* recherche(Noeud* &top, int nbr) //searching
{
while(top != NULL)
{
if(top->nbr == nbr)
return(top);
else if(nbr < top->nbr)
top = top->left;
else
top = top->right;
}
}
mais je continue à obtenir une erreur en disant que je viole l'accès lorsque vous essayez de lire un lieu de mémoire. Je devine que ceci a à voir avec mes pointeurs mais je ne peux pas deviner ce que c'est.
Vouliez-vous dire C++? –
Avez-vous essayé d'exécuter dans un débogueur? Où tombe-t-il exactement? Avez-vous essayé valgrind, si vous êtes sur Linux? – rutgersmike
Depuis 'recherche statique * de Nœud (* & haut Nœud, int nbr)' signifie ce que cela signifie en C++, vous passez 'top' par référence,' top = top-> gauche, 'resp. 'top = top-> right;' détruira votre arbre. –