आइए सबसे पहले अपने बाइनरी ट्री को इंट डेटा, btree_node * rightChild, btree_node * leftChild वाले वर्ग का उपयोग करके परिभाषित करें। लेफ्टचाइल्ड और राइटचाइल्ड btree_node की ओर इशारा करते हैं। हमारी कक्षा के सभी सदस्य सार्वजनिक हैं।
class btree_node { public: int data; btree_node* leftChild; btree_node* rightChild;
एक नया नोड बनाने के लिए हमारे पास कंस्ट्रक्टर फ़ंक्शन है जो इसे नए बनाए गए नोड मान को असाइन करने के लिए पैरामीटर के रूप में int मान लेता है। लेफ्ट चाइल्ड और राइट चाइल्ड को शून्य पर सेट किया गया है।
btree_node(int data){ this->data = data; this->leftChild = NULL; this-> = NULL; }
क्लास डिकंस्ट्रक्टर बाइनरी ट्री के बाएँ और दाएँ बच्चे को हटाए जाने पर डिलीट कीवर्ड का उपयोग करके हटा देता है।
~btree_node(){ delete leftChild; delete rightChild; cout << this->data << "is being deleted"<<endl; }
ट्री के विलोपन को ट्रिगर करने के लिए हम रूट नोड पर डिलीट को कॉल करते हैं क्योंकि इसके बाएँ और दाएँ सबट्री को साथ में हटा दिया जाएगा।
delete root;
उदाहरण
आइए डिलीट कीवर्ड का उपयोग करके बाइनरी ट्री को हटाने के लिए निम्नलिखित कार्यान्वयन देखें -
#include <iostream> using namespace std; class btree_node { public: int data; btree_node* leftChild; btree_node* rightChild; btree_node(int data){ this->data = data; this->leftChild = NULL; this->rightChild = NULL; } ~btree_node(){ delete leftChild; delete rightChild; cout << this->data << " is being deleted"<<endl; } }; int main(){ btree_node* root = new btree_node(2); btree_node* node1 = new btree_node(4); btree_node* node2 = new btree_node(6); btree_node* node3 = new btree_node(8); btree_node* node4 = new btree_node(10); root->leftChild = node1; root->rightChild = node2; node1->leftChild = node3; node1->rightChild = node4; delete root; return 0; }
आउटपुट
उपरोक्त कोड निम्न आउटपुट उत्पन्न करेगा -
8 is being deleted 10 is being deleted 4 is being deleted 6 is being deleted 2 is being deleted