There are many approaches to find the height of the TREE
#include<stdio.h>
#include<stdlib.h>
struct
node{
int
data;
struct
node *right,*left;
}*root=NULL;
int
max=0;
struct
node *newnode(
int
k){
struct
node *temp=(
struct
node *)
malloc
(
sizeof
(
struct
node));
temp->data=k;
temp->right=temp->left=NULL;
return
temp;
}
void
height(
struct
node *root,
int
d){
if
(root==NULL){
return
;
}
printf
(
"Node:%d,Height: %d\n"
,root->data,d);
if
(d>max){
max=d;
}
height(root->left,++d);
//here actually ++d and then --d thats why i have used d in next step
// --d to go up ++d to go right
height(root->right,d);
--d;
}
int
main(){
root = newnode(1);
root->left = newnode(5);
root->right = newnode(8);
root->left->left = newnode(2);
root->left->right = newnode(4);
root->right->left = newnode(9);
root->right->right = newnode(10);
root->right->right->right= newnode(13);
height(root,0);
printf
(
"\nHeight: %d"
,max);
return
0;
}
Output
Node:1,Height: 0
Node:5,Height: 1
Node:2,Height: 2
Node:4,Height: 2
Node:8,Height: 1
Node:9,Height: 2
Node:10,Height: 2
Node:13,Height: 3
Height: 3
RUN THIS
0 comments:
Post a Comment