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 |
main() { char *a = "Hello "; char *b = "World"; clrscr(); printf("%s", strcpy(a,b)); } a. “Hello” b. “Hello World” c. “HelloWorld” d. None of the above
4 Answers Corporate Society, HCL,
main() { 41printf("%p",main); }8
main() { char str1[] = {‘s’,’o’,’m’,’e’}; char str2[] = {‘s’,’o’,’m’,’e’,’\0’}; while (strcmp(str1,str2)) printf(“Strings are not equal\n”); }
main() { unsigned char i=0; for(;i>=0;i++) ; printf("%d\n",i); }
#include <stdio.h> #define a 10 main() { #define a 50 printf("%d",a); }
String reverse with time complexity of n/2 with out using temporary variable.
#define assert(cond) if(!(cond)) \ (fprintf(stderr, "assertion failed: %s, file %s, line %d \n",#cond,\ __FILE__,__LINE__), abort()) void main() { int i = 10; if(i==0) assert(i < 100); else printf("This statement becomes else for if in assert macro"); }
what is brs test reply me email me kashifabbas514@gmail.com
source code for delete data in array for c
Write a c program to search an element in an array using recursion
Write a single line c expression to delete a,b,c from aabbcc
Write a program using one dimensional array to assign values and then display it on the screen. Use the formula a[i]=i*10 to assign value to an element.
1 Answers Samar State University,