Insertion at any position in Linked list by R4R Team

Insertion Function:

void insertion(int n,int pos)
{
struct node *cpt,*ptr;
int i=1;
cpt=(struct node*)malloc(sizeof(struct node));
cpt->data=n;
ptr=first;
while(1)
{
if(i++==pos-1)
break;
ptr=ptr->link;
}
cpt->link=ptr->link;
ptr->link=cpt;
}


program-

#include< stdio.h>
#include< conio.h>
#include< alloc.h>
struct node{
struct node *link;
int data;
};
struct node *first=NULL;

void traverse()
{
struct node *ptr=first;
while(ptr!=NULL){
printf("%d ",ptr->data);
ptr=ptr->link;
}
}
void insertion(int n,int pos)
{
struct node *cpt,*ptr;
int i=1;
cpt=(struct node*)malloc(sizeof(struct node));
cpt->data=n;
ptr=first;
while(1)
{
if(i++==pos-1)
break;
ptr=ptr->link;
}
cpt->link=ptr->link;
ptr->link=cpt;
}
void main()
{
struct node *cpt,*ptr;
int n,pos;
char ch;
clrscr();
first=(struct node*)malloc(sizeof(struct node));
printf("Enter first element in Linklist\n");
scanf("%d",&first->data);
ptr=first;
do
{
cpt=(struct node*)malloc(sizeof(struct node));
printf("Enter another data\n");
scanf("%d",&cpt->data);
ptr->link=cpt;
ptr=ptr->link;
printf("Continue(y/n) ?");
ch=getch();
}while(ch=='y');
ptr->link=NULL;
printf("Linklist isn");
traverse();
printf("nEnter number to add in linklist\n");
scanf("%d",&n);
printf("Enter positionn");
scanf("%d",&pos);
insertion(n,pos);
printf("Linklist After Insertion\n");
traverse();
getch();
}


output-

Enter first element in Linked list
2
Enter another data
4
Continue(y/n)?
Enter another data
1
Continue(y/n) ?
Enter another data
9
Continue(y/n) ?
Enter another data
0
Continue(y/n) ?
Linklist is :
2 4 1 9 0
Enter number to add in linklist
5
Enter position
3
Linklist After Insertion
2 4 5 1 9 0




Leave a Comment: