#include <stdio.h>
#include <stdlib.h>
#include <conio.h>

typedef struct node{
        int data;
        node *next;
};
node * insert (node* root,int data){
     if(root==NULL){
                    root=(node*)malloc(sizeof(node));
                    root->data=data;
                    root->next=NULL;
                    return root;
     }
     node *iter=root;
     if(data<root->data){
                       iter=(node *)malloc(sizeof(node));
                       iter->data=data;
                       iter->next=root;
                       return iter;                  
     }
     
     while(iter->next!=NULL){
                           if(iter->next->data>data)
                                                    break;
                           iter=iter->next;                          
     }
     node * temp=(node *)malloc(sizeof(node));
     temp->data=data;
     temp->next=iter->next;
     iter->next=temp;
     return root;
                     
}
node * del(node *root,int ara){
     node *iter=root;
     if(root==NULL)
                   return NULL;
                   
     if(root->data==ara){
                         node *temp = root;
                         root=root->next;
                         free (temp);
                         return root;
     }
     while(iter->next!=NULL){
                     if(iter->next->data==ara){
                                         break;
                                         }
                     iter=iter->next;
     }
     node * temp = iter->next;
     iter->next = iter->next->next;
     free(temp);
     return root;
     
                       
}
int main(){
    node *root;
    root=NULL;
    root=del(root,10);
    root=insert(root,10);  
    root=insert(root,20); 
    root=insert(root,50); 
    root=insert(root,30);
    root=insert(root,15);
    root=insert(root,5);
    root=insert(root,2);
    root=insert(root,200);
    root=del(root,30);
    root=del(root,15);
    root=del(root,2);
    root=del(root,5);
    root=del(root,200);
    root=del(root,50);
    node *iter=root;
    while(iter!=NULL){
                      printf ("\n%d",iter->data);
                      iter=iter->next;
    }
    getch();
    return 0;
    
}

