इस ट्यूटोरियल में, हम एक बाइनरी ट्री को कन्वर्ट करने के लिए एक प्रोग्राम पर चर्चा करेंगे, जैसे कि हर नोड अपने दाहिने सबट्री में सभी नोड्स के योग को स्टोर करता है।
इसके लिए हमें एक बाइनरी ट्री प्रदान किया जाएगा। हमारा काम एक और पेड़ वापस करना है जहां प्रत्येक नोड नोड और उसके दाहिने उपट्री के योग के बराबर होना चाहिए।
उदाहरण
#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