File tree 1 file changed +61
-0
lines changed 1 file changed +61
-0
lines changed Original file line number Diff line number Diff line change
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
+ }
You can’t perform that action at this time.
0 commit comments