एक पेड़ को हटाने के लिए हमें पेड़ के प्रत्येक नोड को पार करना होगा और फिर उनमें से प्रत्येक को हटाना होगा। यह एक-एक करके पेड़ के प्रत्येक नोड को हटाता है और इसे खाली कर देता है। इसके लिए, हमें एक ऐसी विधि का उपयोग करने की आवश्यकता है जो पेड़ को नीचे से ऊपर तक ले जाए ताकि हम पहले निचले नोटों को और फिर उनके माता-पिता को हटा सकें ताकि कोई अतिरिक्त जटिलता उत्पन्न न हो। हमें जिस स्थिति की आवश्यकता है, उसके आधार पर, पोस्टऑर्डर ट्रैवर्सल सबसे उपयुक्त होगा और कुशलता से काम करेगा ताकि हमारा कार्यक्रम इष्टतम हो।
निम्नलिखित पेड़ के लिए पोस्ट-ऑर्डर है -
2-6-4-12-17-15
पोस्टऑर्डर ट्रैवल सेल तकनीक निम्नलिखित तरीके से काम करती है -
लेफ्ट चाइल्डनोड के लिए जाँच करता है → रूटनोड की जाँच करता है → राइट चाइल्डनोड की जाँच करता है
उदाहरण
#include<stdio.h> #include<stdlib.h> struct node { int data; struct node* left; struct node* right; }; struct node* addnode(int data) { struct node* node = (struct node*) malloc(sizeof(struct node)); node->data = data; node->left = NULL; node->right = NULL; return(node); } void nodedel(struct node* node) { if (node == NULL) return; nodedel(node->left); nodedel(node->right); printf("\n Node deleted, value is %d", node->data); free(node); } int main() { struct node *root = addnode(9); root->left = addnode(4); root->right = addnode(15); root->left->left = addnode(2); root->left->right = addnode(6); root->right->left = addnode(12); root->right->right = addnode(17); nodedel(root); root = NULL; printf("\n Tree deleted "); return 0; }
आउटपुट
Node deleted, value is 4 Node deleted, value is 12 Node deleted, value is 17 Node deleted, value is 15 Node deleted, value is 9 Tree deleted