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

বাইনারি ট্রির প্রি-অর্ডার রিকার্সিভ ট্রাভার্সালের C++ প্রোগ্রাম


প্রি-অর্ডার ট্রাভার্সালে নোড ভিজিট করার ক্রম: রুট (Root) → বাম (Left) → ডান (Right)। এটি ট্রির কপি বানাতে বা এক্সপ্রেশন ট্রি প্রিন্ট করতে ব্যবহৃত হয়।

উদাহরণ

বাইনারি ট্রি (চিত্র অনুপস্থিত)। প্রি-অর্ডার ট্রাভার্সাল: 6 4 1 5 8

উদাহরণ কোড

#include <iostream>
using namespace std;

struct node {
    int data;
    struct node *left;
    struct node *right;
};

struct node *createNode(int val) {
    struct node *temp = (struct node *)malloc(sizeof(struct node));
    temp->data = val;
    temp->left = temp->right = NULL;
    return temp;
}

void preorder(struct node *root) {
    if (root != NULL) {
        cout << root->data << " ";
        preorder(root->left);
        preorder(root->right);
    }
}

struct node* insertNode(struct node* node, int val) {
    if (node == NULL) return createNode(val);
    if (val < node->data)
        node->left = insertNode(node->left, val);
    else if (val > node->data)
        node->right = insertNode(node->right, val);
    return node;
}

int main() {
    struct node *root = NULL;
    root = insertNode(root, 4);
    insertNode(root, 5);
    insertNode(root, 2);
    insertNode(root, 9);
    insertNode(root, 1);
    insertNode(root, 3);

    cout << "বাইনারি সার্চ ট্রির প্রি-অর্ডার ট্রাভার্সাল: ";
    preorder(root);
    return 0;
}

আউটপুট

বাইনারি সার্চ ট্রির প্রি-অর্ডার ট্রাভার্সাল: 4 2 1 3 5 9

কোড ব্যাখ্যা

preorder() ফাংশন

রিকার্সিভ: প্রথমে রুট প্রিন্ট, তারপর বাম সাব-ট্রি, তারপর ডান সাব-ট্রি।

insertNode() এবং createNode()

পূর্বের آر্টিকেলের মতোই।

main()

একই ট্রি তৈরি করে প্রি-অর্ডার প্রিন্ট করে। আউটপুট: ৪ ২ ১ ৩ ৫ ৯।

দ্রষ্টব্য: 原作 কোডে কিছু টাইপো আছে (যেমন root-->data), এখানে সংশোধন করা হয়েছে।

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

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

  3. বাইনারি ট্রির পোস্ট-অর্ডার রিকার্সিভ ট্রাভার্সালের C++ প্রোগ্রাম

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