Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C++

जांचें कि बाइनरी ट्री (बीएसटी नहीं) में सी ++ में डुप्लिकेट मान है या नहीं

मान लें कि हमारे पास एक बाइनरी ट्री है, यह बाइनरी ट्री BST नहीं है। हमें यह जांचना है कि बाइनरी ट्री में एक ही तत्व एक से अधिक बार है या नहीं। इसे हल करने के लिए, हम हैशिंग का उपयोग करेंगे। हम दिए गए पेड़ को पार करेंगे, प्रत्येक नोड के लिए, हम जांचेंगे कि नोड तालिका में मौजूद है या नहीं, यदि वह पहले से मौजूद है, तो झूठी वापसी करें, अन्यथा सत्य।

उदाहरण

#include <iostream>
#include <unordered_set>
using namespace std;
class Node {
   public:
   int data;
   Node *left;
   Node *right;
};
Node* getNode(int data){
   Node *newNode = new Node;
   newNode->data = data;
   newNode->left = NULL;
   newNode->right = NULL;
   return newNode;
}
bool hasDuplicateHelper(Node *root, unordered_set<int> &s){
   if(root == NULL)
      return false;
   if (s.find(root->data) != s.end())
      return true;
   s.insert(root->data);
   return hasDuplicateHelper(root->left, s) ||  hasDuplicateHelper(root->right, s);
}
bool hasDuplicate(Node *root){
   unordered_set<int> s;
   return hasDuplicateHelper(root, s);
}
int main() {
   Node *root = getNode(10);
   root->left = getNode(20);
   root->right = getNode(20);
   root->left->left = getNode(30);
   if (hasDuplicate(root))
      cout << "The tree has duplicate elements.";
   else
      cout << "The tree has no duplicate elements.";
}

आउटपुट

The tree has duplicate elements.

  1. जाँच करें कि क्या दिया गया बाइनरी ट्री C++ में SumTree है

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

  1. जाँच करें कि क्या एक बाइनरी ट्री C++ में किसी अन्य बाइनरी ट्री का सबट्री है

    मान लीजिए कि हमारे पास दो बाइनरी ट्री हैं। हमें यह जांचना होगा कि छोटा पेड़ दूसरे बाइनरी ट्री का सबट्री है या नहीं। गौर कीजिए कि ये दो पेड़ दिए गए हैं। दो पेड़ हैं। दूसरा वृक्ष पहले वाले का उपवृक्ष है। इस संपत्ति की जांच करने के लिए, हम पेड़ को पोस्ट-ऑर्डर फैशन में पार करेंगे, फिर यदि इस नोड के स

  1. जांचें कि बाइनरी ट्री को सी ++ में स्तर-वार क्रमबद्ध किया गया है या नहीं

    यहां हम देखेंगे कि बाइनरी ट्री की जांच कैसे की जाती है कि यह स्तर के अनुसार क्रमबद्ध है या नहीं। स्तर के अनुसार क्रमबद्ध बाइनरी ट्री नीचे जैसा दिखेगा - प्रत्येक स्तर में, नोड्स को बाएं से दाएं क्रमबद्ध किया जाता है, और प्रत्येक परत में अपने पिछले स्तर की तुलना में उच्च मान होता है। हम लेवल ऑर्डर