Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>
- #include<queue>
- using namespace std;
- struct Node
- {
- int data;
- Node *left;
- Node *right;
- };
- Node *getnewnode(int data)
- {
- Node *newnode = new Node();
- newnode->data = data;
- newnode->left = NULL;
- newnode->right = NULL;
- return newnode;
- }
- Node *Insert(Node *root, int data)
- {
- if(root==NULL)
- {
- root = getnewnode(data);
- }
- else if(data <= root->data)
- {
- root->left = Insert(root->left,data);
- }
- else
- {
- root->right = Insert(root->right,data);
- }
- return root;
- }
- void BFS_traversal(Node *node)
- {
- queue<Node *> BFS;
- BFS.push(node);
- while(!BFS.empty())
- {
- node = BFS.front();
- BFS.pop();
- cout << node -> data << " ";
- if(node->left != NULL)
- {
- BFS.push(node->left);
- }
- if(node->right != NULL)
- {
- BFS.push(node->right);
- }
- }
- }
- void DFS_traversal(Node *node)
- {
- if(node==NULL)
- {
- return;
- }
- cout << node-> data << " ";
- DFS_traversal(node->left);
- DFS_traversal(node->right);
- }
- int main()
- {
- Node *root = NULL;
- int limit,i,data,src;
- cout<< "Input number of data: ";
- cin >> limit;
- for(i=1;i<=limit;i++)
- {
- cout << "Input data: ";
- cin >> data;
- root = Insert(root,data);
- }
- cout << "\nBreath First Traversal is....." <<endl;
- BFS_traversal(root);
- cout << "\nDepth First Traversal is....." <<endl;
- DFS_traversal(root);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment