Data Structure Binary Tree: Convert a given tree to its Sum Tree

http://www.geeksforgeeks.org/convert-a-given-tree-to-sum-tree/

 1 #include <iostream>

 2 #include <vector>

 3 #include <algorithm>

 4 #include <queue>

 5 #include <stack>

 6 #include <string>

 7 #include <fstream>

 8 using namespace std;

 9 

10 struct node {

11     int data;

12     struct node *left, *right;

13     node() : data(0), left(NULL), right(NULL) { }

14     node(int d) : data(d), left(NULL), right(NULL) { }

15 };

16 

17 void prints(node *root) {

18     if (!root) return;

19     prints(root->left);

20     cout << root->data << " ";

21     prints(root->right);

22 }

23 

24 int tosum(node *root) {

25     if (!root) return 0;

26     int old = root->data;

27     root->data = tosum(root->left) + tosum(root->right);

28     return root->data + old;

29 }

30 

31 int main() {

32     node *root = new node(10);

33     root->left = new node(-2);

34     root->right = new node(6);

35     root->left->left = new node(8);

36     root->left->right = new node(-4);

37     root->right->left = new node(7);

38     root->right->right = new node(5);

39     tosum(root);

40     prints(root);

41     return 0;

42 }

 

你可能感兴趣的:(convert)