Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> सी प्रोग्रामिंग

C प्रोग्रामिंग में ट्री को डिलीट करने का प्रोग्राम लिखें


एक ट्री को डिलीट करने के लिए हमें ट्री के प्रत्येक नोड को पार करना होगा और फिर उनमें से प्रत्येक को डिलीट करना होगा। यह एक-एक करके ट्री के हर नोड को डिलीट करता है और इसे खाली बना देता है। इसके लिए, हमें एक ऐसी विधि का उपयोग करने की आवश्यकता है जो ट्री को नीचे से ऊपर की ओर पार करे ताकि हम पहले निचले नोड्स को डिलीट कर सकें और फिर उनके पैरेंट को ताकि कोई अतिरिक्त जटिलता न उत्पन्न हो। जिस शर्त की हमें आवश्यकता है, उसके आधार पर, पोस्टऑर्डर ट्रैवर्सल (postorder traversal) सबसे उपयुक्त होगा और कुशलतापूर्वक काम करेगा ताकि हमारा प्रोग्राम इष्टतम हो।

निम्न ट्री के लिए पोस्ट-ऑर्डर है -

2-6-4-12-17-15

पोस्टऑर्डर ट्रैवर्सल तकनीक निम्न तरीके से काम करती है -

बाएं चाइल्ड नोड की जांच करें → रूट नोड की जांच करें → दाएं चाइल्ड नोड की जांच करें

C प्रोग्रामिंग में ट्री को डिलीट करने का प्रोग्राम लिखें

उदाहरण

#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 नोड डिलीट किया गया, मान है %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 ट्री डिलीट हो गया ");
    return 0;
}

आउटपुट

नोड डिलीट किया गया, मान है 4
नोड डिलीट किया गया, मान है 12
नोड डिलीट किया गया, मान है 17
नोड डिलीट किया गया, मान है 15
नोड डिलीट किया गया, मान है 9
ट्री डिलीट हो गया

  1. Python में n-ary ट्री का रूट खोजने का प्रोग्राम Python में n-ary ट्री का रूट खोजने का प्रोग्राम

    मान लीजिए, हमें एक n-ary ट्री के नोड्स एक सरणी में दिए गए हैं। हमें ट्री को पुनर्निर्मित करके उसका रूट नोड ढूंढना और वापस करना है। वापस किए गए नोड से पूरा ट्री प्रीऑर्डर नोटेशन में प्रदर्शित करना है। इसलिए, यदि इनपुट निम्न ट्री है: तो आउटपुट होगा: [14, 27, 32, 42, 56, 65] हम ट्री के प्रीऑर्डर ट्रै

  1. Python में n-ary ट्री की कॉपी बनाने का प्रोग्राम Python में n-ary ट्री की कॉपी बनाने का प्रोग्राम

    मान लीजिए, हमें एक n-ary ट्री दिया गया है जिसका रूट root है। हमें पूरे n-ary ट्री की एक कॉपी बनानी है और दोनों ट्री का प्रीऑर्डर ट्रैवर्सल करना है। कॉपी किए गए ट्री को दूसरे रूट नोड का उपयोग करके स्टोर करना है। ट्री की नोड संरचना नीचे दी गई है: Node: value: children: इसलिए, यदि इनपुट निम

  1. पायथन में ट्री के बाएं सबसे गहरे नोड को खोजने का प्रोग्राम पायथन में ट्री के बाएं सबसे गहरे नोड को खोजने का प्रोग्राम

    मान लीजिए हमारे पास एक बाइनरी ट्री है; हमें सबसे गहरे नोड का मान ढूंढना है। यदि एक से अधिक सबसे गहरे नोड हैं, तो सबसे बाएं गहरे नोड को लौटाएं। उदाहरण के लिए, यदि इनपुट निम्न ट्री है: तो आउटपुट 4 होगा क्योंकि 4 और 7 सबसे गहरे हैं लेकिन 4 सबसे बाएं है। इसे हल करने के लिए हम निम्न चरणों का पालन करेंगे