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

N-এরি ট্রির গভীরতা C++ প্রোগ্রামে


এই টিউটোরিয়ালে আমরা শিখব কিভাবে N-এরি ট্রির গভীরতা বের করা যায়।

একটি N-এরি ট্রি হলো এমন একটি ট্রি যাতে ট্রির প্রতিটি নোডের সর্বোচ্চ N সংখ্যক চাইল্ড নোড থাকে।

আমাদের N-এরি ট্রির গভীরতা বের করতে হবে। আমরা প্রতিটি নোডের চাইল্ডগুলো স্টোর করার জন্য ভেক্টর ব্যবহার করব।

সমস্যা সমাধানের ধাপগুলো:

  • ডামি ডেটা দিয়ে ট্রি ইনিশিয়ালাইজ করুন।

  • N-এরি ট্রির গভীরতা বের করার জন্য একটি রিকারসিভ ফাংশন লিখুন।

    • ট্রির সর্বোচ্চ গভীরতা স্টোর করার জন্য একটি ভেরিয়েবল ইনিশিয়ালাইজ করুন।

    • প্রতিটি নোডের চাইল্ডগুলোর ওপর ইটারেট করুন।

      • সর্বোচ্চ গভীরতা হবে বর্তমান সর্বোচ্চ গভীরতা এবং নোডের চাইল্ডের গভীরতার মধ্যে সর্বোচ্চ মান।

      • যদি আমরা ধরি সর্বোচ্চ গভীরতা ভেরিয়েবলটি maxDepth এবং maxDepth = max(maxDepth, findDepthOfTree(*children) হলো ট্রির গভীরতা বের করার রিকারসিভ স্টেটমেন্ট।

    • ট্রির চূড়ান্ত সর্বোচ্চ গভীরতা হবে maxDepth + 1।

  • ট্রির সর্বোচ্চ গভীরতা প্রিন্ট করুন।

উদাহরণ

নিচে কোডটি দেওয়া হলো:

#include <bits/stdc++.h> using namespace std; struct Node {    int data;    vector<Node *> child; }; Node *newNode(int data) {    Node *temp = new Node;    temp->data = data;    return temp; } int findDepthOfTree(struct Node *node) {    if (node == NULL) {       return 0;    }    int maxDepth = 0;    for (vector<Node*>::iterator it = node->child.begin(); it != node->child.end(); it++) {       maxDepth = max(maxDepth, findDepthOfTree(*it));    }    return maxDepth + 1; } int main() {    Node *root = newNode(1);    root->child.push_back(newNode(2));    root->child.push_back(newNode(3));    root->child.push_back(newNode(4));    root->child[2]->child.push_back(newNode(1));    root->child[2]->child.push_back(newNode(2));    root->child[2]->child.push_back(newNode(3));    root->child[2]->child.push_back(newNode(4));    cout << findDepthOfTree(root) << endl;    return 0; }

আউটপুট

উপরের কোডটি রান করলে নিচের ফলাফল পাওয়া যাবে:

3

উপসংহার

টিউটোরিয়াল সম্পর্কে কোনো প্রশ্ন থাকলে কমেন্ট সেকশনে জানান।


  1. C++ প্রোগ্রাম: AVL ট্রি ইমপ্লিমেন্টেশন

  2. N-ary ট্রির ডায়ামিটার বের করার পাইথন প্রোগ্রাম

  3. N-ary ট্রির রুট নোড খুঁজে বের করার প্রোগ্রাম

  4. N-ary ট্রির কপি (ক্লোন) তৈরি করার প্রোগ্রাম