File tree Expand file tree Collapse file tree 1 file changed +85
-0
lines changed
Expand file tree Collapse file tree 1 file changed +85
-0
lines changed Original file line number Diff line number Diff line change 1+
2+ // order traversal of Binary Tree
3+
4+ #include < bits/stdc++.h>
5+ using namespace std ;
6+
7+ class node {
8+ public:
9+ int data;
10+ node *left, *right;
11+ };
12+
13+
14+ void printCurrentLevel (node* root, int level);
15+ int height (node* node);
16+ node* newNode (int data);
17+
18+
19+ void printLevelOrder (node* root)
20+ {
21+ int h = height (root);
22+ int i;
23+ for (i = 1 ; i <= h; i++)
24+ printCurrentLevel (root, i);
25+ }
26+
27+
28+ void printCurrentLevel (node* root, int level)
29+ {
30+ if (root == NULL )
31+ return ;
32+ if (level == 1 )
33+ cout << root->data << " " ;
34+ else if (level > 1 ) {
35+ printCurrentLevel (root->left , level - 1 );
36+ printCurrentLevel (root->right , level - 1 );
37+ }
38+ }
39+
40+
41+ int height (node* node)
42+ {
43+ if (node == NULL )
44+ return 0 ;
45+ else {
46+
47+ int lheight = height (node->left );
48+ int rheight = height (node->right );
49+
50+ /* use the larger one */
51+ if (lheight > rheight) {
52+ return (lheight + 1 );
53+ }
54+ else {
55+ return (rheight + 1 );
56+ }
57+ }
58+ }
59+
60+
61+ node* newNode (int data)
62+ {
63+ node* Node = new node ();
64+ Node->data = data;
65+ Node->left = NULL ;
66+ Node->right = NULL ;
67+
68+ return (Node);
69+ }
70+
71+
72+ int main ()
73+ {
74+ node* root = newNode (1 );
75+ root->left = newNode (2 );
76+ root->right = newNode (3 );
77+ root->left ->left = newNode (4 );
78+ root->left ->right = newNode (5 );
79+
80+ cout << " Level Order traversal of binary tree is \n " ;
81+ printLevelOrder (root);
82+
83+ return 0 ;
84+ }
85+
You can’t perform that action at this time.
0 commit comments