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

C++-এ ফুল বাইনারি ট্রি (Full Binary Tree) চেক করা


ফুল বাইনারি ট্রি হলো যেখানে প্রতিটি নোডের ০ বা ২টি চাইল্ড থাকে (১টি চাইল্ড থাকে না)। রিকার্সিভলি চেক করা যায়।

অ্যালগরিদম

  • বেস কেস: NULL রুট → true
  • লিফ নোড (দুই চাইল্ড NULL) → true
  • দুই চাইল্ড আছে → বাম ও ডান সাবট্রি রিকার্সিভ চেক
  • অন্যথায় (১টি চাইল্ড) → false

উদাহরণ কোড

#include <iostream>
using namespace std;

struct TreeNode {
    int data;
    TreeNode *left, *right;
    TreeNode(int d) : data(d), left(nullptr), right(nullptr) {}
};

bool isFullBinaryTree(TreeNode* root) {
    if (!root) return true;
    if (!root->left && !root->right) return true;
    if (root->left && root->right)
        return isFullBinaryTree(root->left) && isFullBinaryTree(root->right);
    return false;
}

int main() {
    TreeNode* root = new TreeNode(1);
    root->left = new TreeNode(2);
    root->right = new TreeNode(3);
    root->left->left = new TreeNode(4);
    root->left->right = new TreeNode(5);
    root->right->left = new TreeNode(6);
    // root->right->right = NULL; // এখানে ১টি চাইল্ড, তাই Full Binary Tree নয়
    
    cout << (isFullBinaryTree(root) ? 1 : 0) << endl;
    return 0;
}

আউটপুট

0

রাইট চাইল্ডের রাইট চাইল্ড নেই, তাই ফুল বাইনারি ট্রি নয়।


  1. C++-এ একটি বাইনারি ট্রি লেভেল-ওয়াইজ সর্টেড কিনা তা যাচাই করা

  2. পাইথনে বাইনারি ট্রি সিমেট্রিক (সমমিতি) কিনা যাচাই করা

  3. পাইথনে বাইনারি ট্রি BST কিনা যাচাই করার প্রোগ্রাম

  4. পাইথনে বাইনারি ট্রি কমপ্লিট কিনা যাচাই করার প্রোগ্রাম