5. Display Of The Nodes
void display()
{
NODE *traverse;
if(start==NULL)
{
printf("There are no nodes to be displayed. The list is
empty.n");
}
else
{
traverse=start;
printf("The linked list is: ");
while(traverse!=NULL)
{
printf("%d ",traverse->info);
traverse=traverse->next;
}
}
}
6. The Insert Menu
void insert()
{
int choice;
while(1)
{
printf("n---Insert Menu---n");
printf("1. Insert at first position.n");
printf("2. Insert in between.n");
printf("3. Insert at the end.n");
printf("4. Go to main menun");
printf("5. Exitn");
printf("Enter choice: ");
scanf("%d",&choice);
switch(choice)
{
case 1: insert_first();
break;
case 2: insert_between();
break;
case 3: insert_end();
break;
case 4: mainmenu();
break;
case 5: exit(0);
break;
default: printf("Enter a valid choice.");
}
}
}
7. Insert Node At The First Position
void insert_first()
{
NODE *temp;
if(start==NULL)
{
printf("List is empty. Create as the first node.n");
create();
}
else
{
int iData;
temp=(NODE *)malloc(sizeof(NODE));
temp->prev=NULL;
temp->next=NULL;
printf("Enter an integer value: ");
scanf("%d",&iData);
temp->info=iData;
start->prev=temp;
temp->next=start;
start=temp;
printf("Node inserted at first position.n");
}
display();
}
8. Insert Node At Any Position
void insert_between()
{
if(start==NULL)
{
printf("List is empty. Create as the first node.n");
create();
}
else
{
int iPosition,iCount,iLoop,iData;
printf("Enter the position where you want to insert: ");
scanf("%d",&iPosition);
iCount=count();
if(iPosition>iCount)
{
printf("There are %d elements.n",iCount);
}
else
{
NODE *temp,*traverse;
traverse=start;
printf("Enter an integer value: ");
scanf("%d",&iData);
temp = (NODE *)malloc(sizeof(NODE));
temp->prev=NULL;
temp->info=iData;
temp->next=NULL;
for(iLoop=0;iLoop<iPosition-2;iLoop++)
{
traverse=traverse->next;
}
temp->prev=traverse;
temp->next=traverse->next;
traverse->next->prev=temp;
traverse->next=temp;
printf("Node inserted at position %d.n",iPosition);
}
}
display();
}
9. Insert Node At The End
void insert_end()
{
if(start==NULL)
{
printf("List is empty. Create as the first node.n");
create();
}
else
{
create();
printf("Node inserted at the end.n");
}
display();
}
10. Counting Of Nodes
int count()
{
int iCount=0;
NODE *traverse;
traverse=start;
while(traverse!=NULL)
{
traverse=traverse->next;
iCount++;
}
return iCount;
}
11. The Delete Menu
void deletion()
{
int choice;
while(1)
{
printf("n---Delete Menu---n");
printf("1. Delete first node.n");
printf("2. Delete last node.n");
printf("3. Delete by position.n");
printf("4. Go to main menun");
printf("5. Exitn");
printf("Enter choice: ");
scanf("%d",&choice);
switch(choice)
{
case 1: delete_first();
break;
case 2: delete_end();
break;
case 3: delete_position();
break;
case 4: mainmenu();
break;
case 5: exit(0);
break;
default: printf("Enter a valid choice.");
}
}
}
12. Delete The First Node
void delete_first()
{
NODE *delete_node;
if(start==NULL)
{
printf("There are no nodes to be deleted. The list is
empty.n");
}
else
{
delete_node=start;
start=start->next;
free(delete_node);
printf("The first node is deleted.n");
}
display();
}
13. Delete The Last Node
void delete_end()
{
NODE *delete_node, *traverse;
if(start==NULL)
{
printf("There are no nodes to be deleted. The list is
empty.n");
}
else
{
traverse=start;
while(traverse->next->next!=NULL)
{
traverse=traverse->next;
}
delete_node=traverse->next;
traverse->next=NULL;
free(delete_node);
printf("The last node is deleted.n");
}
display();
}
14. Delete Node At Any Position
void delete_position()
{
if(start==NULL)
{
printf("There are no nodes to be deleted. The list is empty.n");
}
else
{
NODE *traverse, *delete_node;
int iPosition, iLoop, iCount;
printf("Enter the position to be deleted: ");
scanf("%d",&iPosition);
iCount=count();
if(iPosition>iCount)
{
printf("There are %d elements.n",iCount);
}
else
{
traverse=start;
for(iLoop=0;iLoop<iPosition-2;iLoop++)
{
traverse=traverse->next;
}
delete_node=traverse->next;
delete_node->next->prev=traverse;
traverse->next=delete_node->next;
free(delete_node);
printf("Node deleted at position %d.n",iPosition);
}
}
display();
}