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

एक बाइनरी ट्री को कन्वर्ट करें जैसे कि प्रत्येक नोड सभी नोड्स के योग को सी ++ में अपने दाहिने उपट्री में संग्रहीत करता है


इस ट्यूटोरियल में, हम एक बाइनरी ट्री को कन्वर्ट करने के लिए एक प्रोग्राम पर चर्चा करेंगे, जैसे कि हर नोड अपने दाहिने सबट्री में सभी नोड्स के योग को स्टोर करता है।

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

उदाहरण

#include <bits/stdc++.h>
using namespace std;
//node structure of tree
struct Node {
   int data;
   Node *left, *right;
};
//creation of a new node
struct Node* createNode(int item){
   Node* temp = new Node;
   temp->data = item;
   temp->left = NULL;
   temp->right = NULL;
   return temp;
}
//creating the new binary tree
int rightsum_tree(Node* root){
   if (!root)
      return 0;
   if (root->left == NULL && root->right == NULL)
      return root->data;
   //changing the values of left/right subtree
   int rightsum = rightsum_tree(root->right);
   int leftsum = rightsum_tree(root->left);
   //adding the sum of right subtree
   root->data += rightsum;
   return root->data + leftsum;
}
//traversing tree in inorder pattern
void inorder(struct Node* node){
   if (node == NULL)
      return;
   inorder(node->left);
   cout << node->data << " ";
   inorder(node->right);
}
int main(){
   struct Node* root = NULL;
   root = createNode(1);
   root->left = createNode(2);
   root->right = createNode(3);
   root->left->left = createNode(4);
   root->left->right = createNode(5);
   root->right->right = createNode(6);
   rightsum_tree(root);
   cout << "Updated Binary Tree :\n";
   inorder(root);
   return 0;
}

आउटपुट

Updated Binary Tree :
4 7 5 10 9 6

  1. C++ में पुनरावृत्त दृष्टिकोण का उपयोग करते हुए बायें से दायें बायने से दायें बायनेरी ट्री के सभी लीफ नोड्स को प्रिंट करें

    इस समस्या में, हमें एक बाइनरी ट्री दिया जाता है और हमें बाइनरी ट्री के सभी लीफ नोड्स को बायें से दायें इटरेटिव अप्रोच प्रिंट करना होता है। आइए समस्या को समझने के लिए एक उदाहरण लेते हैं इनपुट - आउटपुट - 1 4 7 पुनरावृत्त दृष्टिकोण का उपयोग करके इस समस्या को हल करने के लिए, हम गहराई-प्रथम खोज (ड

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

    इस समस्या में, हमें एक बाइनरी ट्री दिया जाता है और हमें बाइनरी ट्री के सभी लीफ नोड्स को दाएं से बाएं प्रिंट करना होता है। आइए समस्या को समझने के लिए एक उदाहरण लेते हैं इनपुट - आउटपुट - 7 4 1 इस समस्या को हल करने के लिए, हमें बाइनरी ट्री को पार करना होगा। यह ट्रैवर्सल दो तरह से किया जा सकता है

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

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