Function for inserting an item from 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);
}
Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s