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

किसी दिए गए बाइनरी ट्री में सबसे बड़े स्वतंत्र सेट (LIS) का आकार खोजने के लिए C++ प्रोग्राम

यह एक दिए गए बाइनरी ट्री में सबसे बड़े स्वतंत्र सेट (एलआईएस) का आकार खोजने के लिए एक सी ++ प्रोग्राम है।

एल्गोरिदम

Begin.
   Create a structure n to declare data d, a left child pointer l and a right child pointer r.
   Call a function max() to return maximum between two integers. Create a function LIS() to return the
   size of the largest independent set in a given binary tree.
   Calculate size excluding the current node
   int size_excl = LIS(root->l) + LIS(root->r)
   Calculate size including the current node
   int size_incl = 1;
   if (root->l)
      size_incl += LIS(root->l->l) + LIS(root->l->r)
   if (root->right)
      size_incl += LIS(root->r->l) + LIS(root->r->r)
      Return the maximum of two sizes
      Create a function to create newnode.
End.

उदाहरण कोड

#include <iostream>
using namespace std;
struct n {
   int d;
   int lis;
   struct n *l, *r;
};
int max(int x, int y) {
   return (x > y) ? x : y;
}
int LIS(struct n *root) {
   if (root == NULL)
      return 0;
   if (root->lis)
      return root->lis;
   if (root->l == NULL && root->r == NULL)
      return (root->lis = 1);
      int lis_excl = LIS(root->l) + LIS(root->r);
      int lis_incl = 1;
   if (root->l)
      lis_incl += LIS(root->l->l) + LIS(root->l->r);
   if (root->r)
      lis_incl += LIS(root->r->l) + LIS(root->r->r);
      root->lis = max(lis_incl, lis_excl);
      return root->lis;
}
struct n* newnode(int d) {
   struct n* t = (struct n *) malloc(sizeof(struct n));
   t->d = d;
   t->l = t->r = NULL;
   t->lis = 0;
   return t;
}
int main() {
   struct n *root = newnode(30);
   root->l= newnode(20);
   root->l->l = newnode(10);
   root->l->r = newnode(7);
   root->l->r->l = newnode(9);
   root->l->r->r = newnode(6);
   root->r = newnode(50);
   root->r->r = newnode(26);
   cout<<"Size of the Largest Independent Set is "<< LIS(root);
   return 0;
}

आउटपुट

Size of the Largest Independent Set is 5

  1. पता लगाएँ कि क्या एक अप्रत्यक्ष ग्राफ़ में C++ में दिए गए आकार का एक स्वतंत्र सेट है

    अवधारणा किसी दिए गए अप्रत्यक्ष ग्राफ के संबंध में, सत्यापित करें कि क्या इसमें l आकार का एक स्वतंत्र सेट है। यदि आकार का एक स्वतंत्र सेट मौजूद है तो हां प्रिंट करें, अन्यथा नहीं प्रिंट करें। यह ध्यान दिया जाना चाहिए कि ग्राफ में एक स्वतंत्र सेट को शिखर के एक सेट के रूप में परिभाषित किया जाता है जो

  1. C++ में दिए गए परफेक्ट बाइनरी ट्री के सभी नोड्स का योग ज्ञात करें

    मान लीजिए कि हमारे पास एक सकारात्मक पूर्णांक L है, जो एक पूर्ण बाइनरी ट्री में स्तरों की संख्या का प्रतिनिधित्व करता है। इस परफेक्ट बाइनरी ट्री में लीफ नोड्स की संख्या 1 से n तक होती है। जहां n लीफ नोड्स की संख्या है। पैरेंट नोड बच्चों का योग है। हमारा काम इस परफेक्ट बाइनरी ट्री के सभी नोड्स के योग

  1. पायथन में दिए गए बाइनरी ट्री में बीएसटी का सबसे बड़ा योग मूल्य खोजने का कार्यक्रम

    मान लीजिए कि हमें एक बाइनरी ट्री प्रदान किया जाता है। हमें यह पता लगाना होगा कि क्या इसके सबट्री में बाइनरी सर्च ट्री (BST) मौजूद हैं और सबसे बड़े BST का योग ज्ञात करें। योग का पता लगाने के लिए, हम उस BST में प्रत्येक नोड के मान जोड़ते हैं। हम योग मान को आउटपुट के रूप में लौटाते हैं। तो, अगर इनपुट