नोड्स वाले बाइनरी ट्री के साथ दिया गया है और कार्य किसी दिए गए बाइनरी ट्री के सभी नोड्स के उत्पाद को खोजना है।
बाइनरी ट्री में एक रूट नोड होता है जो एक ट्री के सभी नोड्स का मास्टर नोड होता है। एक नोड में डेटा पार्ट, लेफ्ट पॉइंटर होता है जो आगे लेफ्ट सबडायरेक्टरी और राइट पॉइंटर बनाएगा जो राइट सबडायरेक्टरी बनाने में मदद करेगा। तो पेड़ को पार करने के लिए, हम एक अस्थायी सूचक ले सकते हैं जो बाएं सूचक के साथ बाएं उपनिर्देशिका या दाएं सूचक को दाएं उप निर्देशिका को पार करने के लिए जोड़ देगा।
इनपुट
आउटपुट
Nodes are-: 10, 20, 30, 40, 50, 60 Product = 10*20*30*40*50*60 = 72,00,00,000
दृष्टिकोण
-
नोड डेटा इनपुट करें
-
रूट नोड से शुरू होने वाले सभी नोड्स को ट्रैवर्स करें और ट्रैवर्सल के लिए बाएं उप निर्देशिका या दाएं उपनिर्देशिका में जाएं।
-
नोड्स डेटा स्टोर करें और स्टोर किए गए डेटा को नए डेटा से गुणा करते रहें
-
गुणा किए गए मान वाले अस्थायी चर का मान प्रिंट करें।
एल्गोरिदम
Start Step 1 → create structure of a node 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 multiply all the nodes void leaf(node* root, int &product) IF root = NULL return 1 End return (root→data * node_product(root→left) * node_product(root→right)) 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 = node_product(root) Display product Stop
उदाहरण
#include <iostream> using namespace std; //structure of a node struct node{ int data; node *left, *right; }; //function for inserting a new node node* new_node(int data){ node* temp = new node(); temp→data = data; temp→left = temp→right = NULL; return temp; } //function for multiplying all the nodes int node_product(node* root){ if (root == NULL) return 1; return (root→data * node_product(root→left) * node_product(root→right)); } int main(){ node* root = new_node(10); root→left = new_node(20); root→right = new_node(30); root→left→left = new_node(40); root→left→right = new_node(50); root→right→left = new_node(60); int product = node_product(root); cout << "Product of all the nodes is: "<<product<< endl; return 0; }
आउटपुट
यदि उपरोक्त कोड चलाया जाता है तो यह निम्न आउटपुट उत्पन्न करेगा -
Product of all the nodes is: 720000000