কম্পিউটার টিউটোরিয়াল

C++-এ রিকার্শন ছাড়া N-এরি ট্রির প্রিঅর্ডার ট্রাভার্সাল (Preorder Traversal of N-ary Tree Without Recursion)

এই সমস্যাতে, একটি N-এরি ট্রি (N-ary Tree) দেওয়া থাকে। রিকার্শন ব্যবহার না করে এর প্রিঅর্ডার ট্রাভার্সাল প্রিন্ট করতে হবে।

বেসিক ধারণা

  • N-এরি ট্রি: প্রতিটি নোডের সর্বোচ্চ Nটি চাইল্ড হতে পারে (বাইনারি ট্রি = 2-এরি)
  • প্রিঅর্ডার: রুট → বাম থেকে ডান ক্রমে চাইল্ডগুলো

স্ট্যাক ভিত্তিক অ্যালগরিদম

  1. রুট নোড স্ট্যাকে পুশ করুন
  2. স্ট্যাক খালি না হওয়া পর্যন্ত:
    • টপ নোড পপ করুন এবং প্রিন্ট করুন
    • তার চাইল্ডগুলো ডান থেকে বাম ক্রমে স্ট্যাকে পুশ করুন

C++ প্রোগ্রাম উদাহরণ

#include <bits/stdc++.h>
using namespace std;

struct Node {
    int key;
    vector<Node*> child;
};

Node* insertNode(int key) {
    Node* temp = new Node;
    temp->key = key;
    return temp;
}

void preOrderTraversal(Node* root) {
    stack<Node*> tree;
    tree.push(root);
    
    while (!tree.empty()) {
        Node* curr = tree.top(); tree.pop();
        cout << curr->key << "\t";
        
        // চাইল্ডগুলো রাইট-টু-লেফ্ট পুশ করুন
        for (auto it = curr->child.rbegin(); it != curr->child.rend(); ++it)
            tree.push(*it);
    }
}

int main() {
    Node* root = insertNode(12);
    root->child.push_back(insertNode(15));
    root->child.push_back(insertNode(99));
    root->child.push_back(insertNode(4));
    root->child.push_back(insertNode(7));
    
    root->child[0]->child.push_back(insertNode(1));
    root->child[0]->child.push_back(insertNode(4));
    root->child[0]->child.push_back(insertNode(25));
    root->child[2]->child.push_back(insertNode(11));
    root->child[3]->child.push_back(insertNode(19));
    
    cout << "PreOrder Traversal of the tree is:\n";
    preOrderTraversal(root);
    return 0;
}

আউটপুট

PreOrder Traversal of the tree is:
12  15  1  4  25  99  4  11  7  19
  1. N-ary ট্রি লেভেল অর্ডার ট্রাভার্সাল C++-এ

  2. C++-এ রিকার্শন ছাড়া N-এরি ট্রির প্রিঅর্ডার ট্রাভার্সাল (Preorder Traversal of N-ary Tree Without Recursion)

  3. পাইথনে বাইনারি ট্রি প্রি-অর্ডার ট্রাভার্সাল

  4. দেওয়া বাইনারি ট্রির প্রি-অর্ডার নন-রিকারসিভ ট্রাভার্সালের C++ প্রোগ্রাম