এই টিউটোরিয়ালে আমরা দেওয়া বাইনারি ট্রিকে প্রতিফলিত (mirror) করার পদ্ধতি শিখব।
সমস্যা সমাধানের ধাপগুলো নিচে দেওয়া হলো:
নোডের জন্য একটি struct লিখুন।
ডামি ডেটা ব্যবহার করে বাইনারি ট্রি তৈরি করুন।
বাইনারি ট্রির মিরর খুঁজে বের করার জন্য একটি রিকারসিভ ফাংশন লিখুন।
লেফট এবং রাইট নোড সহ রিকারসিভভাবে ফাংশনটি কল করুন।
লেফট নোডের ডেটাকে রাইট নোডের ডেটার সাথে বদলিয়ে দিন।
ট্রি প্রিন্ট করুন।
উদাহরণ
নিচে কোডটি দেওয়া হলো:
#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 = new Node; node->data = data; node->left = NULL; node->right = NULL; return node; } void convertTreeToItsMirror(struct Node* node) { if (node == NULL) { return; } else { struct Node* temp; convertTreeToItsMirror(node->left); convertTreeToItsMirror(node->right); temp = node->left; node->left = node->right; node->right = temp; } } void printTree(struct Node* node) { if (node == NULL) { return; } printTree(node->left); cout << node->data << " "; printTree(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 << "Tree: "; printTree(root); cout << endl; convertTreeToItsMirror(root); cout << "Mirror of the Tree: "; printTree(root); cout << endl; return 0; }আউটপুট
উপরের কোডটি রান করলে নিচের ফলাফল পাওয়া যাবে:
Tree: 4 2 5 1 3 Mirror of the Tree: 3 1 5 2 4
উপসংহার
টিউটোরিয়াল সম্পর্কে কোনো প্রশ্ন থাকলে কমেন্ট সেকশনে জানান।