// Assuming a vector container template class which allocates space as needed and allows negative index values vector<int> result = {0};
void verticalSum(tree *root, int dist=0) { if (root) { result[dist] += root->val; verticalSum(tree->left, dist-1); verticalSum(tree->right, dist+1); } } for(vector<int>::iterator i = result.begin(); i != result.end(); ++i) output(*i); On Mar 17, 4:59 am, rahul sharma <rahul23111...@gmail.com> wrote: > what is vertical sum in binayr tree...i dnt need the algo for this..just > need the concept...that what is vertical sum??? > > Given a Binary Tree, find vertical sum of the nodes that are in same > vertical line. Print all sums through different vertical lines. > > Examples: > > 1 > / \ > 2 3 > / \ / \ > 4 5 6 7 > > The tree has 5 vertical lines > > Vertical-Line-1 has only one node 4 => vertical sum is 4 > Vertical-Line-2: has only one node 2=> vertical sum is 2 > Vertical-Line-3: has three nodes: 1,5,6 => vertical sum is 1+5+6 = 12 > Vertical-Line-4: has only one node 3 => vertical sum is 3 > Vertical-Line-5: has only one node 7 => vertical sum is 7 > > So expected output is 4, 2, 12, 3 and 7 -- You received this message because you are subscribed to the Google Groups "Algorithm Geeks" group. To post to this group, send email to algogeeks@googlegroups.com. To unsubscribe from this group, send email to algogeeks+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/algogeeks?hl=en.