Program to insert the element in linked
list after the given value.
#include<stdio.h>
#include<conio.h>
#include<alloc.h>
#define
null 0
void
main()
{
char c;
int i,p,j=0;
struct node
{
int data;
struct node *link;
}*temp,*start,*n,*prev;
clrscr();
start=null;
for(i=0;i<=1;i++)
{
if(start==null)
{
temp=(struct node *)malloc(sizeof(struct
node));
printf("enter data:");
scanf("%d",&temp->data);
temp->link=null;
start=temp;
j++;
}
else
{
while(1)
{
printf("press n if you not want to add
another node");
fflush(stdin);
c=getch();
if(c=='n'||c=='N')
break;
else
{
temp->link=(struct
node*)malloc(sizeof(struct node));
temp=temp->link;
printf("\nenter data:");
scanf("%d",&temp->data);
temp->link=null;
j++;
}
}
}
}
printf("\ntraversing\n");
temp=start;
while(temp->link!=null)
{
printf("%d\t",temp->data);
temp=temp->link;
}
printf("%d",temp->data);
printf("\ninsert a link after given
position:");
printf("\nenter position:");
scanf("%d",&p);
if(p>j)
printf("invalid position");
else
{
n=(struct node*)malloc(sizeof(struct node));
printf("\nenter data for the new
node:");
scanf("%d",&n->data);
temp=start;
for(i=1;i<=p;i++)
{
prev=temp;
temp=temp->link;
}
prev->link=n;
n->link=temp;
}
printf("\ntraversing\n");
temp=start;
while(temp->link!=null)
{
printf("%d\t",temp->data);
temp=temp->link;
}
printf("%d",temp->data);
getch();
}
output:
enter
data:45
press
n if you not want to add another node
enter
data:85
press
n if you not want to add another node
enter
data:56
press
n if you not want to add another node n
traversing:
45 85
56
insert
link at given position position
enter
position: 2
enter
data: 90
traversing
45 85 90 56
No comments:
Post a Comment