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

C++ में बाइनरी ट्री में चिल्ड्रन सम गुण की जांच


मान लीजिए हमारे पास एक बाइनरी ट्री है। बाइनरी ट्री वैध है जब यह निम्न गुण को पूरा करता है।

  • प्रत्येक नोड में डेटा मान अपने बाएं और दाएं बच्चों के मानों के योग के समान होना चाहिए। यदि किसी भी तरफ कोई बच्चे नहीं हैं, तो इसे 0 माना जाएगा।

मान लीजिए एक ट्री नीचे जैसा मौजूद है, जो दिए गए गुण को पूरा करता है।

C++ में बाइनरी ट्री में चिल्ड्रन सम गुण की जांच

इसे जांचने के लिए कोई खास ट्रिक नहीं है, हमें ट्री को पुनरावर्ती रूप से ट्रैवर्स करना होगा, यदि नोड और उसके दोनों बच्चे गुण को संतुष्ट करते हैं तो सत्य लौटाएं, अन्यथा असत्य।

उदाहरण

#include <iostream> using namespace std; class node {    public:    int data;    node* left;    node* right; }; bool isValidBinaryTree(node* nd) {    int left_data = 0, right_data = 0;    if(nd == NULL || (nd->left == NULL && nd->right == NULL))       return 1;    else{       if(nd->left != NULL)          left_data = nd->left->data;       if(nd->right != NULL)          right_data = nd->right->data;       if((nd->data == left_data + right_data)&& isValidBinaryTree(nd->left) && isValidBinaryTree(nd->right))          return true;       else          return false;    } } node* getNode(int data) {    node* newNode = new node();    newNode->data = data;    newNode->left = NULL;    newNode->right = NULL;    return newNode; } int main() {    node *root = getNode(10);    root->left = getNode(8);    root->right = getNode(2);    root->left->left = getNode(3);    root->left->right = getNode(5);    root->right->right = getNode(2);    if(isValidBinaryTree(root))       cout << "The tree satisfies the children sum property ";    else       cout << "The tree does not satisfy the children sum property "; }

आउटपुट

The tree satisfies the children sum property

  1. C++ में बाइनरी ट्री लेवल-वाइज क्रमबद्ध है या नहीं जांचें C++ में बाइनरी ट्री लेवल-वाइज क्रमबद्ध है या नहीं जांचें

    समस्या विवरण जांचें कि बाइनरी ट्री लेवल-वाइज क्रमबद्ध है या नहीं। प्रत्येक लेवल में नोड्स बाएं से दाएं क्रमबद्ध हों और प्रत्येक लेवल के मान पिछले लेवल से बड़े हों। एल्गोरिदम (लेवल ऑर्डर ट्रैवर्सल) क्यू का उपयोग करके लेवल ऑर्डर ट्रैवर्सल प्रत्येक लेवल के लिए न्यूनतम (min_val) और अधिकतम (max_val) ट

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

    यहां हम देखेंगे कि बाइनरी ट्री सम-ट्री (SumTree) है या नहीं, इसकी जांच कैसे करें। अब सवाल यह है कि सम-ट्री क्या है। एक सम-ट्री एक बाइनरी ट्री है जहां एक नोड अपने बच्चों के योग का मान रखता है। ट्री का रूट उसके नीचे के सभी तत्वों का पूरा योग रखता है। यह सम-ट्री का एक उदाहरण है -इसे जांचने के लिए, हम ए

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

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