मैं कार्य में से एक के लिए C ++ का उपयोग करते हुए एक द्विआधारी खोज वृक्ष को लागू करने की है। मैं कक्षा बना लिया है, और लागू करने का प्रयास किया InsertItem, PrintTree, DeleteTree वर्ग के लिए विधियों, मुझे लगता है कि मैं सब कुछ सही किया, लेकिन किसी कारण से मेरा कार्यक्रम क्रैश हो रहा है :(
यहाँ मेरी कोड है:
PrintTree विधि
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 विधि
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;
}
विधि की मेरी अनुक्रम जब तक कार्यक्रम दुर्घटनाओं कॉल:
मैं आइटम सम्मिलित F,B,G,A,D,I,C,E,H: ठीक काम करता है
मैं फोन PrintTree(): ठीक काम करता है
मैं फोन DeleteTree(): ठीक काम करता है
मैं फोन PrintTree()फिर से: कार्यक्रम दुर्घटनाओं
किसी कारण से अभिव्यक्ति if(RootNode == NULL)सच नहीं लौटा रहा है के बाद DeleteTree()विधि कहा जाता है, तो कार्यक्रम कुछ है जो अस्तित्व में नहीं है और दुर्घटनाओं मुद्रित करने के लिए कोशिश करता है। मुझे यकीन है कि क्यों यह हो रहा है नहीं कर रहा हूँ, क्या मैं गलत यहाँ कर रहा हूँ?
छोटी या बडी सब तरह की मदद सराहनीय है।













