INSERTING AN ITEM INTO A LINKED LIST


/* Write a function for inserting an item into a linked list  */


node *insert(node *head)
{
node *find(node *p, int a);
node *new;    /* pointer to new node */
node *n1; /* pointer to node preceding key node */
int key;
int x; /* new item (number) to be inserted */

printf("Value of new item?");
scanf("%d", &x);
printf("Value of key item ? (type -999 if last) ");
scanf("%d", &key);

if(head->number == key)  /* new node is first */
{
    new = (node *)malloc(size of(node));
    new->number = x;
    new->next = head;
    head = new;
}
else /* find key node and insert new node */
{ /* before the key node */
n1 = find(head, key);    /* find key node */

if(n1 == NULL)
   printf("\n key is not found \n");
else /* insert new node */
{
      new = (node *)malloc(sizeof(node));
      new->number = x;
      new->next = n1->next;
      n1->next = new;
}
   }
return(head);
}
node *find(node *lists, int key)
{
if(list->next->number == key)   /* key found */
return(list);
else

if(list->next->next == NULL)  /* end */
return(NULL);
else
find(list->next, key);
}


All Rights Reserved The Origin for Screamers | Design by SCREAMERS
Computers
Top Blogs