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
unsigned getbits(unsigned x, int p, int n)
ReplyDelete{
return (x >> (p+1-n)) & ~(~0 << n);
}
can bit shiftin be used to check divisibility by 3... just wondering.....
ReplyDelete@shaunak yes bit shifting can be used to check divisibility by 3.
ReplyDeleteyou can do it using three state variables(in case of 3)for storing remainder information 0,1,2.
Moving from left to right in bitwise representation of any number follow the rule below.
0(0) - 0
0(1) - 1
1(0) - 2
1(1) - 0
2(0) - 1
2(1) - 2
start state is 0 and final state is also 0.
make a state diagram and u will be able to find out if it is divisible by 3 or not.