এই টিউটোরিয়ালে আমরা একটি বাইনারি ট্রিকে এর মিরর ট্রি-তে রূপান্তর করার একটি প্রোগ্রাম নিয়ে আলোচনা করব।
এখানে একটি বাইনারি ট্রি দেওয়া থাকবে। আমাদের কাজ হবে বাম এবং ডান পাশের মানগুলো 서로 সোয়াপ করে দিয়ে দেওয়া বাইনারি ট্রি থেকে একটি মিরর ট্রি তৈরি করা।
উদাহরণ
#include <bits/stdc++.h>
using namespace std;
// বাইনারি ট্রি নোড স্ট্রাকচার
struct Node {
int data;
struct Node* left;
struct Node* right;
};
// কোনো চাইল্ড নোড ছাড়া নতুন নোড তৈরি
struct Node* newNode(int data) {
struct Node* node = (struct Node*)malloc(sizeof(struct Node));
node->data = data;
node->left = NULL;
node->right = NULL;
return(node);
}
void mirror(struct Node* node) {
if (node == NULL)
return;
else {
struct Node* temp;
// সাবট্রি গুলো সোয়াপ করা
mirror(node->left);
mirror(node->right);
temp = node->left;
node->left = node->right;
node->right = temp;
}
}
// ইনঅর্ডার ট্রভারসাল প্রিন্ট
void print_tree(struct Node* node) {
if (node == NULL)
return;
print_tree(node->left);
cout << node->data << " ";
print_tree(node->right);
}
int main() {
struct Node* root = newNode(1);
root->left = newNode(2);
root->right = newNode(3);
root->left->left = newNode(4);
root->left->right = newNode(5);
// প্রাথমিক ট্রি প্রিন্ট
cout << "Inorder traversal of the constructed" << endl;
print_tree(root);
mirror(root);
// মিরর ট্রি প্রিন্ট
cout << "\nInorder traversal of the mirror tree" << endl;
print_tree(root);
return 0;
}
আউটপুট
Inorder traversal of the constructed 4 2 5 1 3 Inorder traversal of the mirror tree 3 1 5 2 4