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