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

यह जांचने के लिए एक प्रोग्राम है कि बाइनरी ट्री बीएसटी है या नहीं सी में?

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

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 हैं, isBSTuntil () विधि का उपयोग करके।


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

    मान लीजिए हमें एक बाइनरी ट्री दिया गया है। हमें ट्री से सबसे बड़े सबट्री का पता लगाना है जो कि बाइनरी सर्च ट्री (BST) है। हम BST का रूट नोड लौटाते हैं। तो, अगर इनपुट पसंद है तो आउटपुट होगा - इसे हल करने के लिए, हम इन चरणों का पालन करेंगे - सी :=0 एम:=शून्य एक फ़ंक्शन रिकर्स () को परिभाषित कर

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

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

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

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