এই টিউটোরিয়ালে আমরা দেওয়া ট্রিকে ডাবল (দুগুণ) করার পদ্ধতি শিখব।
সমস্যা সমাধানের ধাপগুলো:
নোড ক্লাস তৈরি করুন।
ডামি ডেটা দিয়ে ট্রি ইনিশিয়ালাইজ করুন।
ট্রি ডাবল করার জন্য একটি রিকারসিভ ফাংশন লিখুন।
ট্রি রিকারসিভভাবে ট্রাভার্স করুন।
লেফট নোডটি একটি ভেরিয়েবলে স্টোর করুন।
ট্রাভার্সাল শেষে নতুন নোড তৈরি করে ডেটা যোগ করুন।
এখন লেফট নোডটিকে নতুন তৈরি নোডের লেফট চাইল্ড হিসেবে যোগ করুন।
ট্রি প্রিন্ট করুন।
উদাহরণ
নিচে কোডটি দেওয়া হলো:
#include <bits/stdc++.h> using namespace std; class node { public: int data; node* left; node* right; }; node* newNode(int data) { node* Node = new node(); Node->data = data; Node->left = NULL; Node->right = NULL; return Node; } void doubleTree(node* Node) { node* oldLeft; if (Node == NULL) return; doubleTree(Node->left); doubleTree(Node->right); oldLeft = Node->left; Node->left = newNode(Node->data); Node->left->left = oldLeft; } void printTree(node* node) { if (node == NULL) { return; } printTree(node->left); cout << node->data << " "; printTree(node->right); } int main() { node *root = newNode(1); root->left = newNode(2); root->right = newNode(3); cout << "Original Tree" << endl; printTree(root); cout << endl; doubleTree(root); cout << "Double Tree" << endl; printTree(root); cout << endl; return 0; }আউটপুট
উপরের কোডটি রান করলে নিচের ফলাফল পাওয়া যাবে:
Original Tree 2 1 3 Double Tree 2 2 1 1 3 3
উপসংহার
টিউটোরিয়াল সম্পর্কে কোনো প্রশ্ন থাকলে কমেন্ট সেকশনে জানান।