THIS PROGRAM INSERTS A NODE AT GIVEN LOCATION IN SIMPLE LINKED LIST
#include<stdio.h>
#include<malloc.h>
struct list
{
int info;
struct list *link;
};
int i;
int num;
struct list start, *prev, *new1;
void insert_node(struct list *);
void create_list(struct list *);
void display(struct list *);
/* Function to create linked list */
void create_list(struct list *ptr)
{
int n;
ptr = &start; /* Ptr points to the start pointer */
printf("\n How many nodes you want to create: ");
scanf("%d",&n);
i=0;
printf("\n\n ==============================================================================\n");
printf("\n Note That:\n -----------\n Enter numeric data in node\n");
printf("\n ==============================================================================\n");
while( i!=n)
{
ptr->link = (struct list *) malloc(sizeof(struct list));
ptr = ptr->link;
printf("\n Enter the values of the node : %d: ", (i+1));
scanf("%d", &ptr->info);
ptr->link = NULL;
i++;
}
printf("\n\n ---------------");
printf("\n Total nodes = %d",i);
printf("\n ---------------\n\n");
}
/* Function to display the list */
void display(struct list *ptr)
{
ptr = start.link;
while (ptr)
{
printf("\n\n\t\t%d", ptr->info);
ptr = ptr->link;
}
}
/* Function to insert node at given locatoin */
void insert_node(struct list *ptr)
{
int loc;
int i=0;
ptr = start.link;
prev = &start;
printf("\n\n ----------------------------------------------------");
printf("\n Enter the location where you want to insert node:");
scanf("%d",&loc);
while(ptr)
{
if((i+1) == loc)
{
new1 = (struct list *) malloc(sizeof(struct list));
new1->link = ptr ;
prev->link = new1;
printf("\n Enter the item you want to insert: ");
scanf("%d",&new1->info);
break ;
}
else
{
ptr = ptr->link;
prev= prev->link;
}
i++;
}
}
/* Main Function */
void main()
{
struct list *ptr = (struct list *) malloc(sizeof(struct list));
clrscr();
create_list(ptr);
printf("\n ----------------------");
printf("\n Linked list is:\n");
printf("\n ----------------------");
display(ptr);
insert_node(ptr);
printf("\n\n\n ----------------------------");
printf("\n Linked list after insertion: \n");
printf("\n ----------------------------");
display(ptr);
getch();
}
Comments
Post a Comment