Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C++

C++ में एक बाइनरी ट्री में सभी नोड्स का उत्पाद


नोड्स वाले बाइनरी ट्री के साथ दिया गया है और कार्य किसी दिए गए बाइनरी ट्री के सभी नोड्स के उत्पाद को खोजना है।

बाइनरी ट्री में एक रूट नोड होता है जो एक ट्री के सभी नोड्स का मास्टर नोड होता है। एक नोड में डेटा पार्ट, लेफ्ट पॉइंटर होता है जो आगे लेफ्ट सबडायरेक्टरी और राइट पॉइंटर बनाएगा जो राइट सबडायरेक्टरी बनाने में मदद करेगा। तो पेड़ को पार करने के लिए, हम एक अस्थायी सूचक ले सकते हैं जो बाएं सूचक के साथ बाएं उपनिर्देशिका या दाएं सूचक को दाएं उप निर्देशिका को पार करने के लिए जोड़ देगा।

इनपुट

C++ में एक बाइनरी ट्री में सभी नोड्स का उत्पाद

आउटपुट

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

  1. बाइनरी सर्च ट्री के सभी विषम नोड्स को C++ में प्रिंट करें

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

  1. C++ में दिए गए परफेक्ट बाइनरी ट्री के सभी नोड्स का योग ज्ञात करें

    मान लीजिए कि हमारे पास एक सकारात्मक पूर्णांक L है, जो एक पूर्ण बाइनरी ट्री में स्तरों की संख्या का प्रतिनिधित्व करता है। इस परफेक्ट बाइनरी ट्री में लीफ नोड्स की संख्या 1 से n तक होती है। जहां n लीफ नोड्स की संख्या है। पैरेंट नोड बच्चों का योग है। हमारा काम इस परफेक्ट बाइनरी ट्री के सभी नोड्स के योग

  1. C++ प्रोग्रामिंग में एक बाइनरी ट्री में सभी नोड्स के प्रिंट स्तर।

    बाइनरी ट्री को देखते हुए, कार्य 1 से n तक के नोड में संग्रहीत प्रत्येक कुंजी से जुड़े स्तर को प्रिंट करना है उपरोक्त पेड़ में, नोड्स हैं - 10 लेवल 13 पर और 211 लेवल 2140 पर, 162, 100 और 146 लेवल 3 पर कुंजी को देखते हुए प्रोग्राम को उस विशेष कुंजी के स्तर को प्रिंट करना होगा। उदाहरण एल्गोरिदम न