Ik moet implementeren van een binaire zoekboom met behulp van C ++ voor één van de opdrachten. Ik heb de klas gemaakt en geprobeerd om de uitvoering van het InsertItem, PrintTree, deleteBoom methoden voor de klasse, ik denk dat ik deed alles goed, maar om wat voor reden mijn programma crasht steeds :(
Hier is mijn code:
PrintTree Method
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);
}
deleteBoom Method
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;
}
Mijn volgorde van de methode roept totdat het programma crasht:
Ik steek items F,B,G,A,D,I,C,E,H: werkt prima
Ik noem PrintTree(): werkt prima
Ik noem DeleteTree(): werkt prima
Ik noem PrintTree()weer: programma crasht
Om een of andere reden de expressie if(RootNode == NULL)niet terugkeert zo na de DeleteTree()methode wordt aangeroepen, zodat het programma probeert om iets dat niet bestaat en crashes te drukken. Ik weet niet zeker waarom dit gebeurt, wat doe ik hier verkeerd?
Enige en alle hulp wordt gewaardeerd.













