Ich habe einen binären Suchbaum für eine der Aufgaben unter Verwendung von C ++ zu implementieren. Ich habe die Klasse erstellt und versucht , das umzusetzen InsertItem, PrintTree, DeleteTree Methoden für die Klasse, ich glaube , ich habe alles richtig gemacht, aber aus irgendeinem Grund mein Programm stürzt immer wieder ab :(
Hier ist mein Code:
PrintTree Methode
template <class TItem>
void BinarySearchTree<TItem>::PrintTree()
{
PrintTree(RootNode);
}
template <class TItem>
void BinarySearchTree<TItem>::PrintTree(BinarySearchTreeNode* Node)
{
if(Node == NULL)
return;
cout << Node->Data << endl;
PrintTree(Node->LeftChild);
PrintTree(Node->RightChild);
}
DeleteTree Methode
template <class TItem>
void BinarySearchTree<TItem>::DeleteTree()
{
DeleteTree(RootNode);
}
template <class TItem>
void BinarySearchTree<TItem>::DeleteTree(BinarySearchTreeNode* Node)
{
if(Node == NULL)
return;
DeleteTree(Node->LeftChild);
DeleteTree(Node->RightChild);
delete Node;
}
Meine Sequenz von Methodenaufrufen, bis das Programm abstürzt up:
Ich lege Artikel F,B,G,A,D,I,C,E,H: funktioniert gut
Ich nenne PrintTree(): funktioniert gut
Ich nenne DeleteTree(): funktioniert gut
Ich rufe PrintTree()wieder: Programm stürzt
Aus irgendeinem Grunde der Ausdruck if(RootNode == NULL)nicht wahr Rückkehr nach der DeleteTree()Methode aufgerufen wird, so dass das Programm etwas zu drucken versucht , die nicht und stürzen nicht existiert. Ich bin mir nicht sicher , warum dies geschieht, was mache ich hier falsch?
Jedwedes Hilfe ist willkommen.













