Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>
- using namespace std;
- class tree{
- public:
- int data;
- tree*left;
- tree*right;
- tree(int n){
- data=n;
- left=right=NULL;
- }
- };
- tree*insert(tree*root,int n){
- if(!root)return new tree(n);
- if(root->data==n)return root;
- if(n < root->data)root->left=insert(root->left,n);
- else root->right=insert(root->right,n);
- }
- tree*deletenode(tree*root,int n){
- if(!root)return root;
- if(root->data==n){
- if(root->left==NULL)return root->right;
- else if(root->right==NULL)return root->left;
- else{
- tree*tmp=root->right;
- while(tmp->left){
- tmp=tmp->left;
- }
- tmp->left=root->left;
- root=root->right;
- return root;
- }
- }
- else if(root->data>n){
- root->left=deletenode(root->left,n);
- }
- else{
- root->right=deletenode(root->right,n);
- }
- return root;
- }
- void preorder(tree*root){
- if(!root)return;
- cout<<root->data<<" ";
- preorder(root->left);
- preorder(root->right);
- }
- void inorder(tree*root){
- if(!root)return;
- inorder(root->left);
- cout<<root->data<<" ";
- inorder(root->right);
- }
- void postorder(tree*root){
- if(!root)return;
- postorder(root->left);
- postorder(root->right);
- cout<<root->data<<" ";
- }
- int main(){
- tree*root=NULL;
- root=insert(root,2);
- root=insert(root,5);
- root=insert(root,2);
- root=insert(root,4);
- root=insert(root,9);
- root=insert(root,3);
- root=insert(root,1);
- preorder(root);
- cout<<endl;
- inorder(root);
- cout<<endl;
- postorder(root);
- cout<<endl;
- root=deletenode(root,5);
- preorder(root);
- cout<<endl;
- inorder(root);
- cout<<endl;
- postorder(root);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement