// 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.

Reply via email to