Skip to content

Commit 47f26bf

Browse files
committed
added level order traversal using bfs
1 parent 495ef4f commit 47f26bf

File tree

1 file changed

+61
-0
lines changed

1 file changed

+61
-0
lines changed
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
#include <iostream>
2+
using namespace std;
3+
4+
struct Node
5+
{
6+
int key;
7+
Node* left;
8+
Node* right;
9+
10+
Node(int k)
11+
{
12+
key = k;
13+
left = NULL;
14+
right = NULL;
15+
}
16+
};
17+
18+
int height(Node *node)
19+
{
20+
if (node == NULL)
21+
return -1;
22+
int lheight = height(node->left);
23+
int rheight = height(node->right);
24+
return max(lheight, rheight) + 1;
25+
}
26+
27+
void print_level(Node *node, int level)
28+
{
29+
if (node == NULL)
30+
return;
31+
else if (level == 0)
32+
cout << node->key << " ";
33+
else if (level > 0)
34+
{
35+
print_level(node->left, level-1);
36+
print_level(node->right, level-1);
37+
}
38+
}
39+
40+
void levelorder_traversal(Node *root)
41+
{
42+
43+
for (int level=0; level <= height(root); level++)
44+
print_level(root, level);
45+
}
46+
47+
int main()
48+
{
49+
Node *root=new Node(10);
50+
root->left=new Node(20);
51+
root->right=new Node(30);
52+
root->left->left=new Node(40);
53+
root->left->right=new Node(50);
54+
root->right->left=new Node(60);
55+
root->right->right=new Node(70);
56+
57+
cout << "Levelorder Traversal using recursion: ";
58+
levelorder_traversal(root);
59+
cout << endl;
60+
return 0;
61+
}

0 commit comments

Comments
 (0)