Find the largest number in a binary tree
Answers were Sorted based on User's Feedback
Answer / guest
Well..it's not a binary search tree.So we need to traverse
entire binary tree and check with the all node elements and
find the max value.
struct node
{
int data;
struct node *l;
struct node *r;
};
typedef struct node *nd;
int maximum(nd root)
{
static int max;
nd cur = root;
if(cur!=NULL)
{
if(cur->data>max)
max=cur->data;
maximum(root->l);
maximum(root->r);
}
return max;
}
| Is This Answer Correct ? | 13 Yes | 11 No |
Answer / tomás senart
There is a difference between a binary tree and a binary search tree.
A binary tree isn't organized in any sense. The values of it's nodes can be random and have no relationship to each other.
Here is a method for finding the biggest node on a binary tree.
typedef struct node {
int value;
struct tree *right;
struct tree *left;
} Node;
int biggest_node(Node *node)
{
int biggest_left, biggest_right;
biggest_left = node->left ? biggest_node(node->left) : node->value;
biggest_right = node->right ? biggest_node(node->right) : node->value;
if(node->value < biggest_left && node->value < biggest_right)
return biggest_left > biggest_right ? biggest_left : biggest_right;
else if(node->value < biggest_right)
return biggest_right;
else if(node->value < biggest_left)
return biggest_left;
else
return node->value;
}
| Is This Answer Correct ? | 7 Yes | 6 No |
Answer / jiabul sk
int maxOfTree(tree * t)
{
//if tree is empty then it will return -99
if(t==null){return -99;}
else
{
int temp ;
temp=max( maxOfTree(t->left), maxOfTree(t->right));
return( max( t->info , temp ) );
}
}
| Is This Answer Correct ? | 4 Yes | 3 No |
Answer / c++ genie
<code>
struct node
{
int data;
struct node *l;
struct node *r;
};
typedef struct node *nd;
int maximum(nd root)
{
static int max;
nd cur = root;
if(cur!=NULL)
{
int temp = maximum(root->l);
if(temp > max)
max = temp;
int temp2 = maximum(root->r);
if(temp2 > max)
max = temp;
}
return max;
}
</code>
| Is This Answer Correct ? | 2 Yes | 4 No |
Answer / raghuram.a
Well..it's not a binary search tree.So we need to traverse
entire binary tree and check with the all node elements and
find the max value.
struct node
{
int data;
struct node *l;
struct node *r;
};
typedef struct node *nd;
int maximum(nd root)
{
static int max;
nd cur = root;
if(cur!=NULL)
{
if(cur->data>max)
max=cur->data;
maximum(root->l);
maximum(root->r);
}
return max;
}
| Is This Answer Correct ? | 4 Yes | 10 No |
Answer / bharat pandey
The Largest Node in the Binary tree is the Rightmost node
of the tree.
Hence we would traverse the Tree Till The Rightmost child
of the node is traversed.
the code is as follows:
#include<stdio.h>
#include<conio.h>
struct node
{
int data;
struct node *left,*right;
}*tree;
struct node* MAX(struct node* q)
{
struct node* temp;
while(q->right!=NULL)
{
temp=q;
q=q->right;
}
return temp;
}
this algorithm will find the largest element of the tree in
o(log n).
| Is This Answer Correct ? | 6 Yes | 23 No |
why the range of an unsigned integer is double almost than the signed integer.
main() { extern int i; i=20; printf("%d",sizeof(i)); }
Question: We would like to design and implement a programming solution to the reader-writer problem using semaphores in C language under UNIX. We assume that we have three readers and two writers processes that would run concurrently. A writer is to update (write) into one memory location (let’s say a variable of type integer named temp initialized to 0). In the other hand, a reader is to read the content of temp and display its content on the screen in a formatted output. One writer can access the shared data exclusively without the presence of other writer or any reader, whereas, a reader may access the shared memory for reading with the presence of other readers (but not writers).
what will be the output of this program? void main() { int a[]={5,10,15}; int i=0,num; num=a[++i] + ++i +(++i); printf("%d",num); }
how to return a multiple value from a function?
what is oop?
main() { int i=_l_abc(10); printf("%d\n",--i); } int _l_abc(int i) { return(i++); }
Program to Delete an element from a doubly linked list.
4 Answers College School Exams Tests, Infosys,
Write a routine to draw a circle (x ** 2 + y ** 2 = r ** 2) without making use of any floating point computations at all.
2 Answers Mentor Graphics, Microsoft,
void main() { int *mptr, *cptr; mptr = (int*)malloc(sizeof(int)); printf(“%d”,*mptr); int *cptr = (int*)calloc(sizeof(int),1); printf(“%d”,*cptr); }
can u give me the c codings for converting a string into the hexa decimal form......
Is the following code legal? struct a { int x; struct a b; }