INSERT NEW NODE BEFORE AND AFTER  IN THE LINKED LIST USING C LANGUAGE

#include<stdio.h>
#include<conio.h>
typedef struct list
  {
    int data;
    struct list *next;
  }node;

node *start=NULL;
void creat();
void display();
 void insertbefore();
 void insertafter();



 void main()
   {

     int option;
    clrscr();
     do
       {
     printf("\n Main Menu");
     printf("\n1:Creat list");
     printf("\n2:Display list");
     printf("\n3:Insert before");
     printf("\n4:insert after");
     printf("\n0:Exit\n");
     printf("\nEnter your option:-");
     scanf("%d",&option);
     switch(option)
       {
         case 1:creat();
         printf("\nlinked list created");
         break;
         case 2:display();
         break;

       case 3:insertbefore();
         printf("\nNode inserted before:-");
         break;
        case 4:insertafter();
        printf("\n node inserted after:-");
         break;
         case 0:
         exit(0);
       }
       }

   while(option!=0);
   getch();
 }


void creat()
  {
    node *ptr,*newnode;
    int num;
    printf("Enter data,pres 999 to exit:-");
    scanf("%d",&num);
    while(num!=999)
      {
     newnode=(node*)malloc(sizeof(node));
     newnode->data=num;
     if(start==NULL)
       {
         newnode->next=NULL;
         start=newnode;
       }
     else
       {
         ptr=start;
         while(ptr->next!=NULL)
         ptr=ptr->next;
         ptr->next=newnode;
         newnode->next=NULL;
       }
         printf("Enter another data:-");
         scanf("%d",&num);
       }
        }

 void  display()
  {
  node *ptr;
  ptr=start;
  while(ptr!=NULL)
  {
  printf("\%d->",ptr->data);
  ptr=ptr->next;
  }

  }




   void insertafter()
   {
    int  num,i=0,pos;
    node*ptr,*preptr,*newnode;
    printf("\nenter position after a node is inserted ");
    scanf("%d",&pos);
    printf("\nenter number :-");
    scanf("%d",&num);
    newnode=(node*)malloc(sizeof(node));
    newnode->data=num;
    ptr=start;

    for(i=1;i<=pos;i++)
    {
    preptr=ptr;
    ptr=ptr->next;

    }
    preptr->next=newnode;
    newnode->next=ptr;
    }

         void insertbefore()
         {
         int pos,i=0,num;
         node*ptr,*newnode,*preptr;
         printf("\n enter position before node is to be inserted:-");
         scanf("%d",&pos);

          printf("\nenter number :-");
          scanf("%d",&num);
         newnode=(node*)malloc(sizeof(node));
          newnode->data=num;
          ptr=start;

         for(i=0;i<pos-1;i++)
      {
         preptr=ptr;
         ptr=ptr->next;

       }
         preptr->next=newnode;
         newnode->next=ptr;
      }

Post a Comment

Previous Post Next Post