এই সমস্যায়, আমাদেরকে একটি গাছ দেওয়া হয় এবং আমাদের কাজ হল রিকার্সন ব্যবহার করে গাছের আকার গণনা করার জন্য একটি প্রোগ্রাম তৈরি করা৷
একটি গাছের আকার হল গাছে উপস্থিত মোট নোডের সংখ্যা।
সমস্যাটি বোঝার জন্য একটি উদাহরণ দেওয়া যাক,
উপরের গাছের আকার 5.
গাছের আকার বের করার জন্য, আমাদেরকে বাম সাবট্রি এবং ডান সাবট্রির সাইজ যোগ করতে হবে এবং তারপর এটিকে 1 দ্বারা বৃদ্ধি করতে হবে। গাছের বাম এবং ডান উভয় সাবট্রির জন্য রিকার্সিভ ফাংশন বলা হবে। এবং যদি কোন সাবট্রি পাওয়া না যায় তবে 0 রিটার্ন করুন।
উপরের উদাহরণ এই পদ্ধতি ব্যবহার করে সমাধান করা হয়েছে
গাছের আকার খোঁজার জন্য,
size(3) =size(5) + size(7) + 1
size(3) =(size(1) + size(9) + 1) + 1 + 1
আকার(3) =(1 + 1 + 1) + 1 + 1
আকার(3) =5
আমাদের সমাধানের কাজ চিত্রিত করার জন্য প্রোগ্রাম,
উদাহরণ
#include <iostream> using namespace std; class node { public: int data; node* left; node* right; }; node* insertNode(int data) { node* Node = new node(); Node->data = data; Node->left = NULL; Node->right = NULL; return(Node); } int findSize(node* node) { if (node == NULL) return 0; else return(findSize(node->left) + 1 + findSize(node->right)); } int main() { node *root = insertNode(6); root->left = insertNode(3); root->right = insertNode(7); root->left->left = insertNode(1); root->left->right = insertNode(5); root->right->left = insertNode(2); cout<<"The size of the given tree is "<<findSize(root); return 0; }
আউটপুট
The size of the given tree is 6