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

C++ प्रोग्राम एक बाइनरी सर्च ट्री में सबसे कम सामान्य पूर्वज खोजने के लिए

एक बाइनरी ट्री जिसमें अधिकतम दो बच्चे होते हैं, जिसे बाएं बच्चे और दाएं बच्चे के रूप में निर्दिष्ट किया जाता है। बाइनरी ट्री में सबसे कम सामान्य पूर्वज को खोजने के लिए यह एक C++ प्रोग्राम है।

एल्गोरिदम

Begin Create a structure n to declare data d, a left child pointer l and a right child pointer r.
   Create a function to create newnode. Call a function LCA() to Find lowest common ancestor in a binary tree:
   Assume node n1 and n2 present in the tree.
   If root is null, then return.
      If root is not null there are two cases.
         a) If both n1 and n2 are smaller than root, then LCA lies in left.
         b) If both n1 and n2 are greater than root, then LCA lies in right.
End.

उदाहरण कोड

#include<iostream>
using namespace std;
struct n {
   int d;
   struct n* l, *r;
}*p = NULL;
struct n* newnode(int d) {
   p = new n;
   p->d= d;
   p->l = p->r = NULL;
   return(p);
}
struct n *LCA(struct n* root, int n1, int n2) {
   if (root == NULL)
      return NULL;
   if (root->d > n1 && root->d > n2)
      return LCA(root->l, n1, n2);
   if (root->d< n1 && root->d < n2)
      return LCA(root->r, n1, n2);
      return root;
}
int main() {
   n* root = newnode(9);
   root->l = newnode(7);
   root->r = newnode(10);
   root->l->l = newnode(6);
   root->r->l= newnode(8);
   root->r->r = newnode(19);
   root->r->l->r = newnode(4);
   root->r->r->r = newnode(20);
   int n1 = 20, n2 = 4;
   struct n *t = LCA(root, n1, n2);
   cout<<"Lowest Common Ancestor of 20 and 4 is:" <<t->d<<endl;
   n1 = 7, n2 = 6;
   t = LCA(root, n1, n2);
   cout<<"Lowest Common Ancestor of 7 and 6 is:" << t->d<<endl;
}

आउटपुट

Lowest Common Ancestor of 20 and 4 is:9
Lowest Common Ancestor of 7 and 6 is:7

  1. पायथन का उपयोग करके बाइनरी ट्री के सबसे कम सामान्य पूर्वज का पता लगाने का कार्यक्रम

    मान लीजिए, हमें एक बाइनरी ट्री दिया गया है और दो विशिष्ट नोड x और y भी दिए गए हैं। हमें बाइनरी ट्री से दो नोड्स के सबसे कम सामान्य पूर्वज का पता लगाना है। बाइनरी ट्री में सबसे कम सामान्य पूर्वज सबसे निचला नोड होता है, जिसके दोनों नोड x और y वंशज होते हैं। साथ ही, एक विशेष नोड स्वयं का वंशज भी हो सकत

  1. पायथन में एक बाइनरी ट्री का सबसे कम सामान्य पूर्वज

    मान लीजिए कि हमारे पास एक बाइनरी ट्री है। हमें दो दिए गए नोड्स के सबसे कम सामान्य पूर्वज नोड्स को खोजना होगा। दो नोड्स p और q का LCA वास्तव में पेड़ में सबसे कम नोड के रूप में होता है जिसमें p और q दोनों डीसेंटेंट होते हैं। तो अगर बाइनरी ट्री [3,5,1,6,2,0,8,null,null,7,4] जैसा है। पेड़ जैसा होगा -

  1. पायथन में एक बाइनरी सर्च ट्री का सबसे कम सामान्य पूर्वज

    मान लीजिए कि हमारे पास एक बाइनरी सर्च ट्री है। हमें दो दिए गए नोड्स के सबसे कम सामान्य पूर्वज नोड्स को खोजना होगा। दो नोड्स p और q का LCA वास्तव में पेड़ में सबसे कम नोड के रूप में होता है जिसमें p और q दोनों डीसेंटेंट होते हैं। तो अगर बाइनरी ट्री [6, 2, 8, 0, 4, 7, 9, नल, नल, 3, 5] जैसा है। पेड़ जै