एक बाइनरी ट्री दिया गया है जिसमें नोड्स हैं और कार्य दिए गए बाइनरी ट्री के सभी लीफ नोड्स का गुणनफल निकालना है।
लीफ नोड्स अंतिम नोड्स हैं जिनके कोई बच्चे नहीं होते। एक ट्री में, एक नोड रूट नोड को छोड़कर माता-पिता नोड या बच्चा नोड के रूप में कार्य कर सकता है जो केवल माता-पिता नोड हो सकता है। इसलिए जिन नोड्स का दायां और बायां पॉइंटर NULL होता है वे लीफ नोड्स होते हैं।
इनपुट

आउटपुट
लीफ नोड्स हैं -: 23, 34, 25 गुणनफल-: 23*34*25 = 19550
दृष्टिकोण
- नोड डेटा इनपुट करें।
- रूट नोड से शुरू करके सभी नोड्स को पार करें और पार करने के लिए या तो बाएं उपनिर्देशिका या दाएं उपनिर्देशिका पर जाएं।
- उन नोड्स को संग्रहीत करें जिनका दायां और बायां पॉइंटर NULL है, एक अस्थायी चर में गुणनफल निकालने के लिए।
- गुणा किए गए मानों को धारण करने वाले अस्थायी चर का मान प्रिंट करें।
एल्गोरिदम
शुरुआत
चरण 1 → नोड की संरचना बनाएं और temp, next और head को संरचना नोड के पॉइंटर के रूप में
struct node {
int data
Create node *left, *right
}
चरण 2 → ट्री में नोड डालने के लिए फ़ंक्शन घोषित करें
node* new_node(int data) {
node* temp = new node();
temp->data = data;
temp->left = temp->right = NULL;
return temp;
}
चरण 3 → सभी लीफ नोड्स का गुणनफल निकालने के लिए फ़ंक्शन घोषित करें
void leaf(node* root, int &product) {
if (!root) return;
if (!root->left && !root->right)
product *= root->data;
leaf(root->left, product);
leaf(root->right, product);
}
चरण 4 → main() में
node* root = new_node(10);
root->left = new_node(20);
root->left->left = new_node(30);
int product = 1;
leaf(root, product);
product प्रदर्शित करें
रुकें
उदाहरण
#include <bits/stdc++.h>
using namespace std;
struct node {
int data;
node *left, *right;
};
node* new_node(int data) {
node* temp = new node();
temp->data = data;
temp->left = temp->right = NULL;
return temp;
}
void leaf(node* root, int &product) {
if (!root) return;
if (!root->left && !root->right)
product *= root->data;
leaf(root->left, product);
leaf(root->right, product);
}
int main() {
node* root = new_node(10);
root->left = new_node(20);
root->left->left = new_node(30);
root->left->right = new_node(40);
root->right = new_node(50);
root->right->right = new_node(60);
root->right->left = new_node(70);
int product = 1;
leaf(root, product);
cout << "लीफ नोड्स का गुणनफल है: " << product;
return 0;
}
आउटपुट
यदि उपरोक्त कोड चलाया जाता है तो यह निम्नलिखित आउटपुट उत्पन्न करेगा:
लीफ नोड्स का गुणनफल है: 5040000