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
void insert(struct node **s, void *data,unsigned int n)
ReplyDelete{
struct node *temp,*r;
int i;
if(*s == NULL)
{
temp = malloc(sizeof(struct node));
temp->data = malloc(n);
for (i = 0; i < n; i++)
*(char *)(temp->data + i) = *(char *)(data + i);
temp->link = NULL;
*s = temp;
}
else
{
temp =*s;
while(temp->link != NULL)
temp = temp->link;
r = malloc(sizeof(struct node));
r->data = malloc(sizeof(n));
for (i = 0; i < n; i++)
*(char *)(r->data + i) = *(char *)(data + i);
r->link = NULL;
temp->link = r;
}
}
In order to display the value You need to send the type of data it is storing as a parameter.