नोड्स वाले बाइनरी ट्री के साथ दिया गया है और कार्य किसी दिए गए बाइनरी ट्री के सभी लीफ नोड्स के उत्पाद को खोजना है।
लीफ नोड्स अंतिम नोड होते हैं जिनके कोई बच्चे नहीं होते हैं। एक पेड़ में, एक नोड मूल नोड या चाइल्ड नोड के रूप में कार्य कर सकता है, रूट नोड को छोड़कर जो केवल एक पैरेंट नोड हो सकता है। तो एनयूएलएल के रूप में दाएं और बाएं पॉइंटर वाले नोड लीफ नोड्स हैं।
इनपुट
आउटपुट
Leaf nodes are -: 23, 34, 25 Product-: 23*34*25 = 19550
दृष्टिकोण
-
नोड डेटा इनपुट करें
-
रूट नोड से शुरू होने वाले सभी नोड्स को ट्रैवर्स करें और ट्रैवर्सल के लिए बाएं उप निर्देशिका या दाएं उपनिर्देशिका में जाएं।
-
उत्पाद को खोजने के लिए उन नोड्स को एक अस्थायी चर में दाएं और बाएं पॉइंटर के साथ संग्रहीत करें जो NULL हैं।
-
गुणित मान रखने वाले अस्थायी चर के मान को प्रिंट करें।
एल्गोरिदम
Start Step 1 → create structure of a node and temp, next and head as pointer to a structure node struct node int data Create node *left, *right End Step 2 → declare function to insert a node in a tree node* new_node(int data) Set node* temp = new node() Set temp→data = data Set temp→left = temp→right = NULL return temp End Step 3 → Declare a function to find product of all the leaf nodes void leaf(node* root, int &product) IF (!root) Return End IF (!root→left && !root→right) Set product *= root→data Call leaf(root→left, product) Call leaf(root→right, product) Step 4 → In main() Create node* root = new_node(10) Set root→left = new_node(20) Set root→left→left = new_node(30) Set int product = 1 Call leaf(root, product) Display product Stop
उदाहरण
#include <bits/stdc++.h> using namespace std; //structure of a node struct node{ int data; node *left, *right; }; //function to create a new leaf of a tree node* new_node(int data){ node* temp = new node(); temp→data = data; temp→left = temp→right = NULL; return temp; } //function to find the product of all leaf nodes of a tree 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 of a leaf nodes are :"<<product; return 0; }
आउटपुट
यदि उपरोक्त कोड चलाया जाता है तो यह निम्न आउटपुट उत्पन्न करेगा -
product of a leaf nodes are :5040000