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