### C++ program to add all greater values to every node in a given binary search tree

Description:
This Program is to add all greater values to every node in a given binary search tree.

For Example:
Input :
The Elements are : 5 , 10 , 15 , 20 , 25
Output :
Elements entered : 75 70 60 45 25

Program :
//C++ program to add all greater values to every node in a given binary search tree #include <bits/stdc++.h> using namespace std; // tree node struct Node { int data; Node *left, *right; }; // returns a new tree Node Node* newNode(int data) { Node* temp = new Node(); temp->data = data; temp->left = temp->right = NULL; return temp; } // A function to create binary tree. Node* Tree(Node* temp, int data ) { // If the tree is empty, return a new node if (temp == NULL) return newNode(data); // Otherwise, recur down the tree if (data < temp->data) temp->left = Tree(temp->left, data); else temp->right = Tree(temp->right, data); //return the (unchanged) node pointer return temp; } // Recursive function to add all greater values in every node void modify(struct Node *root, int *add) { if (root == NULL) return; // Recur for right subtree modify(root->right, add); // Now *sum has sum of nodes in right subtree, add root->data to sum and update root->data *add = *add + root->data; root->data = *add; // Recur for left subtree modify(root->left, add); } // A wrapper over modify void modifyBST(struct Node *root) { int sum = 0; modify(root, &sum); } //function to display all the element present in the binary tree void display(struct Node* root) { if (root != NULL) { display(root->left); cout<<root->data<<" "; display(root->right); } } int main() { int n,size; Node *root = new Node; root = NULL; cout<<"Enter the size of array : "; cin>>size; int arr[size]; cout<<"Enter the elements in array : "; for(int i=0;i<size;i++) { cin>>arr[i]; } // Construct the binary tree. for(int i = 0; i < size; i++) { root = Tree(root, arr[i]); } modifyBST(root); cout<<"\nElements are : "; display(root); return 0; }

#### More Articles of Mandeep Sheoran:

Name Views Likes
C++ program to insert an element into binary tree 6240 19
C++ program to find an element into binary tree 772 16
C++ std::is_void 572 15
C++ program to find the closest element in binary search tree 916 19
C++ program to replace every element with the least greater element on its right 573 12
C++ program to delete an element into binary tree 784 24
C++ program to find maximum element between two nodes of binary search tree 699 20
C++ std::remove_copy_if with std::vectors 547 11
C++ program to print duplicate elements from the binary search tree 2937 15
C++ program to find depth of the deepest odd level node in binary tree 575 23
C++ program to remove duplicate elements from the binary search tree 1548 20
C++ std::rotate_copy with std::vector 529 14
C++ std::copy_n with std::vector 638 22
C++ std::copy_if with std::vector 1552 18
C++ program to print all the elements of binary search tree 7105 22
C++ std::reverse_copy with std::list 598 18
C++ program to print all the elements of binary tree 1158 18
C++ program to print all full nodes in a binary tree 572 25
C++ program to find sink odd nodes in binary tree 580 15
C++ std::is_copy_assignable 595 22
C++ program to check whether a binary tree is a full binary tree or not using recursion 609 19
C++ std::is_copy_constructible 618 27
C++ program to delete an element into binary search tree 2873 18
C++ std::reverse_copy with std::vector 487 18
C++ std::rotate with std::vector 641 15
C++ program to check for symmetric binary tree using recursion 599 25
C++ program to maximum sum from a tree with adjacent levels not allowed 551 15
C++ std::copy_n with std::list 595 21
C++ program to check if two trees are identical using recursion 545 15
C++ std::copy_n 874 21
C++ std::copy_if with std::list 998 19
C++ program to print the nodes at odd levels of a tree 562 13
C++ program to find lowest common ancestor in a binary tree 689 29
C++ program to find depth of the deepest odd level leaf node 494 13
C++ std::remove_copy_if with std::list 666 20
C++ program to add all greater values to every node in a given binary search tree 638 15