Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>
- 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 Search(Node *root, int data)
- {
- if(root==NULL)
- {
- cout << "Not Found"<<endl;
- }
- else if(root->data == data)
- {
- cout << "Found"<<endl;
- }
- else if(data <= root->data)
- {
- return Search(root->left,data);
- }
- else
- {
- return Search(root->right,data);
- }
- }
- void preorder(Node *root)
- {
- if (root==NULL)
- {
- return;
- }
- cout << root->data << " ";
- preorder(root->left);
- preorder(root->right);
- }
- void inorder(Node *root)
- {
- if(root == NULL)
- {
- return;
- }
- inorder(root->left);
- cout << root->data << " ";
- inorder(root->right);
- }
- void postorder(Node *root)
- {
- if(root==NULL)
- {
- return;
- }
- postorder(root->left);
- postorder(root->right);
- cout << root->data << " ";
- }
- 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 << "\nPreorder traversal..."<<endl;
- preorder(root);
- cout << "\nInorder traversal..."<<endl;
- inorder(root);
- cout << "\npostorder traversal..."<<endl;
- postorder(root);
- cout << "\nInput a data for Search: ";
- cin >> src;
- Search(root,src);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement