Skip to content

Commit b79bed5

Browse files
committed
Update problem30.c
1 parent 1396ec0 commit b79bed5

File tree

1 file changed

+76
-0
lines changed

1 file changed

+76
-0
lines changed

problem30.c

Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,3 +88,79 @@ int main()
8888
getchar();
8989
return 0;
9090
}
91+
92+
//Solved by CH. Lakshmi Sowjanya, IT
93+
94+
#include <stdio.h>
95+
#include <stdlib.h>
96+
struct node
97+
{
98+
int data;
99+
struct node* left;
100+
struct node* right;
101+
};
102+
void printGivenLevel(struct node* root, int level);
103+
int height(struct node* node);
104+
struct node* newNode(int data);
105+
void printLevelOrder(struct node* root)
106+
{
107+
int h = height(root);
108+
int i;
109+
for(i=1; i<=h; i++)
110+
printGivenLevel(root, i);
111+
}
112+
void printGivenLevel(struct node* root, int level)
113+
{
114+
if(root == NULL)
115+
return;
116+
if(level == 1)
117+
printf("%d ", root->data);
118+
else if (level > 1)
119+
{
120+
printGivenLevel(root->left, level-1);
121+
printGivenLevel(root->right, level-1);
122+
}
123+
}
124+
125+
int height(struct node* node)
126+
{
127+
if (node==NULL)
128+
return 0;
129+
else
130+
{
131+
132+
int lheight = height(node->left);
133+
int rheight = height(node->right);
134+
135+
136+
if (lheight > rheight)
137+
return(lheight+1);
138+
else return(rheight+1);
139+
}
140+
}
141+
142+
struct node* newNode(int data)
143+
{
144+
struct node* node = (struct node*)
145+
malloc(sizeof(struct node));
146+
node->data = data;
147+
node->left = NULL;
148+
node->right = NULL;
149+
150+
return(node);
151+
}
152+
153+
int main()
154+
{
155+
struct node *root = newNode(1);
156+
root->left = newNode(2);
157+
root->right = newNode(3);
158+
root->left->left = newNode(4);
159+
root->left->right = newNode(5);
160+
161+
printf("Level Order traversal of binary tree is \n");
162+
printLevelOrder(root);
163+
164+
getchar();
165+
return 0;
166+
}

0 commit comments

Comments
 (0)