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

यह निर्धारित करने के लिए कोड लिखें कि C++ में दो पेड़ समान हैं या नहीं

इस समस्या में हमें दो पेड़ दिए जाते हैं। हमारा काम यह जांचने के लिए एक कोड लिखना है कि दोनों पेड़ एक जैसे हैं या नहीं।

दो पेड़ों को समान कहा जाता है यदि सरणियों के तत्वों का मान और अभिविन्यास समान हो।

उदाहरण

<मजबूत> यह निर्धारित करने के लिए कोड लिखें कि C++ में दो पेड़ समान हैं या नहीं

यह निर्धारित करने के लिए कोड लिखें कि C++ में दो पेड़ समान हैं या नहीं


चूँकि दोनों पेड़ों के मूल्य और तत्वों की स्थिति समान है, इसलिए दोनों पेड़ समान हैं।

यह जांचने के लिए कि क्या दो पेड़ समान हैं, हम नोड नोड से प्रत्येक नोड पर जाएंगे और चरण दर चरण उनकी समानता की जांच करेंगे और यदि किसी भी बिंदु पर नोड्स बराबर रिटर्न -1 नहीं हैं, तो पेड़ समान नहीं हैं और यदि पूरे पेड़ को पार किया जाता है या दोनों पेड़ खाली रिटर्न 1 हैं, यह दर्शाता है कि पेड़ समान हैं।

उपरोक्त समाधान की कार्यप्रणाली को दर्शाने के लिए कार्यक्रम,

उदाहरण

#include <iostream>
using namespace std;
class node{
   public:
   int data;
   node* left;
   node* right;
};
node* insertNode(int data){
   node* Node = new node();
   Node->data = data;
   Node->left = NULL;
   Node->right = NULL;
   return(Node);
}
int isIdentricalTrees(node* tree1, node* tree2){
   if (tree1 == NULL &amp;&amp; tree2 == NULL)
      return 1;
   if (tree1 != NULL &amp;&amp; tree2 != NULL){
      return( tree1->data == tree2->data &amp;&amp; isIdentricalTrees(tree1->left,
         tree2->left) &amp;&amp; isIdentricalTrees(tree1->right, tree2->right) );
   }
   return 0;
}
int main(){
   node *root1 = insertNode(4);
   node *root2 = insertNode(4);
   root1->left = insertNode(5);
   root1->right = insertNode(0);
   root1->left->left = insertNode(1);
   root1->left->right = insertNode(9);
   root1->right->left = insertNode(7);
   root2->left = insertNode(5);
   root2->right = insertNode(0);
   root2->left->left = insertNode(1);
   root2->left->right = insertNode(9);
   root2->right->left = insertNode(7);
   cout<<"Both the given trees are ";
   if(isIdentricalTrees(root1, root2))
      cout<<"identical";
   else
      cout<<"identical";
   return 0;
}

आउटपुट

Both the given trees are identical

  1. C++ में दो बाइनरी ट्री मर्ज करने का प्रोग्राम

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

  1. C++ में दो बाइनरी सर्च ट्री में सभी तत्व

    मान लीजिए कि हमारे पास दो बाइनरी सर्च ट्री हैं, हमें मानों की एक सूची वापस करनी होगी, जिसमें इन पेड़ों में सभी तत्व मौजूद हैं, और सूची तत्व आरोही क्रम में होंगे। तो अगर पेड़ जैसे हैं - तब आउटपुट [0,1,1,2,3,4] होगा। इसे हल करने के लिए, हम इन चरणों का पालन करेंगे - एक सरणी को परिभाषित करें जिसे a

  1. C++ में दो बाइनरी ट्री मर्ज करें

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