| #include<iostream> | |
| #include<queue> | |
| using namespace std; | |
| struct Node { | |
| char data; | |
| Node *left; | |
| Node *right; | |
| }; | |
| // Function to print Nodes in a binary tree in Level order | |
| void LevelOrder(Node *root) { | |
| if(root == NULL) return; | |
| queue<Node*> Q; | |
| Q.push(root); | |
| //while there is at least one discovered node | |
| while(!Q.empty()) { | |
| Node* current = Q.front(); | |
| Q.pop(); // removing the element at front | |
| cout<<current->data<<" "; | |
| if(current->left != NULL) Q.push(current->left); | |
| if(current->right != NULL) Q.push(current->right); | |
| } | |
| } | |
| // Function to Insert Node in a Binary Search Tree | |
| Node* Insert(Node *root,char data) { | |
| if(root == NULL) { | |
| root = new Node(); | |
| root->data = data; | |
| root->left = root->right = NULL; | |
| } | |
| else if(data <= root->data) root->left = Insert(root->left,data); | |
| else root->right = Insert(root->right,data); | |
| return root; | |
| } | |
| int main() { | |
| /*Code To Test the logic | |
| Creating an example tree | |
| M | |
| / \ | |
| B Q | |
| / \ \ | |
| A C Z | |
| */ | |
| Node* root = NULL; | |
| root = Insert(root,'M'); root = Insert(root,'B'); | |
| root = Insert(root,'Q'); root = Insert(root,'Z'); | |
| root = Insert(root,'A'); root = Insert(root,'C'); | |
| //Print Nodes in Level Order. | |
| LevelOrder(root); | |
| } | |
Wednesday, 19 August 2015
level order travasing
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment