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

C में प्रोग्राम: जांचें कि बाइनरी ट्री BST है या नहीं

एक बाइनरी ट्री एक ट्री डेटा संरचना है जिसमें प्रत्येक नोड के लिए दो चाइल्ड नोड्स होते हैं। चाइल्ड नोड्स दो होने के कारण इन्हें लेफ्ट और राइट चाइल्ड कहा जाता है।

BST एक ट्री संरचना है जिसमें लेफ्ट सबट्री में रूट से कम मान वाले नोड्स होते हैं और राइट सबट्री में रूट से अधिक मान वाले नोड्स होते हैं।

यहां, हम जांचेंगे कि क्या एक बाइनरी ट्री BST है या नहीं।

इसकी जांच के लिए हमें बाइनरी ट्री पर BST कंडीशन की जांच करनी होगी। एक रूट नोड के लिए जांचें कि लेफ्ट चाइल्ड रूट से कम होना चाहिए, राइट चाइल्ड रूट से अधिक होना चाहिए, उन सभी नोड्स के लिए जिनमें चाइल्ड्स मौजूद हैं।

प्रोग्राम: जांचें कि बाइनरी ट्री BST है या नहीं

#include <bits/stdc++.h>
#include <iostream>
using namespace std;

class Node {
public:
    int data;
    Node* left;
    Node* right;
    Node(int data) {
        this->data = data;
        this->left = NULL;
        this->right = NULL;
    }
};

int isBSTUtil(Node* node, int min, int max);
int isBST(Node* node) {
    return isBSTUtil(node, INT_MIN, INT_MAX);
}

int isBSTUtil(Node* node, int min, int max) {
    if (node == NULL)
        return 1;
    if (node->data < min || node->data > max)
        return 0;
    return isBSTUtil(node->left, min, node->data - 1) &&
           isBSTUtil(node->right, node->data + 1, max);
}

int main() {
    Node* root = new Node(8);
    root->left = new Node(3);
    root->right = new Node(10);
    root->left->left = new Node(1);
    root->left->right = new Node(6);
    if (isBST(root))
        cout << "The given tree is a BST";
    else
        cout << "The given tree is Not a BST";
    return 0;
}

आउटपुट

The given tree is a BST

कोड व्याख्या

उपरोक्त कोड BST की जांच करता है। मुख्य विधि एक ट्री बनाती है और isBST() मेथड कॉल करती है। यह मेथड जांचता है कि लेफ्ट और राइट चाइल्ड BST नियम का पालन करते हैं और यह भी कि बने सबट्री भी BST हैं, isBSTUtil() मेथड का उपयोग करके।

  1. पायथन में दिए गए बाइनरी ट्री में BST मौजूद है या नहीं जांचने का प्रोग्राम पायथन में दिए गए बाइनरी ट्री में BST मौजूद है या नहीं जांचने का प्रोग्राम

    मान लीजिए हमें एक बाइनरी ट्री दी गई है। हमें ट्री से सबसे बड़ा सबट्री ढूंढना है जो बाइनरी सर्च ट्री (BST) है। हम BST का रूट नोड लौटाते हैं। इसलिए, यदि इनपुट है: तो आउटपुट होगा: समाधान दृष्टिकोण पोस्ट-ऑर्डर ट्रैवर्सल का उपयोग करके प्रत्येक सबट्री की जांच करें ट्रैक करें कि सबट्री BST है या नहीं

  1. पायथन में बाइनरी ट्री के BST होने की जांच करने का प्रोग्राम पायथन में बाइनरी ट्री के BST होने की जांच करने का प्रोग्राम

    मान लीजिए हमारे पास एक बाइनरी ट्री है; हमें जांचना है कि क्या यह एक बाइनरी सर्च ट्री है या नहीं। जैसा कि हम जानते हैं एक BST के निम्न गुण होते हैं: इसके बाएं सबट्री के सभी नोड्स वर्तमान नोड के मान से छोटे होते हैं इसके दाएं सबट्री के सभी नोड्स वर्तमान नोड के मान से बड़े होते हैं ये गुण सभी नोड्स क

  1. पायथन में बाइनरी ट्री के पूर्ण होने की जांच करने का प्रोग्राम पायथन में बाइनरी ट्री के पूर्ण होने की जांच करने का प्रोग्राम

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