Sunday 25 March 2012

Program to insert the element in linked list after the given value.


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