#include<stdio.h>
#include<stdlib.h>
typedef struct node
{
int info;
struct node *link;
}
NODE;
NODE *front, *rear;
int is_empty()
{
return front==NULL;
}
NODE* get_node(int val)
{
NODE *ptr;
ptr = (NODE*) malloc(sizeof(NODE));
ptr->info = val;
ptr->link = NULL;
return(ptr);
}
void add(int val)
{
NODE *temp;
temp = get_node(val);
if(front == NULL)
front = temp;
else
rear->link = temp;
rear = temp;
}
int delete()
{
int val;
NODE *temp;
if(is_empty())
{
printf("Queue empty.\n");
return -999;
}
val = front->info;
temp = front;
if(front==rear)
front = rear = NULL;
else
front = front->link;
free(temp);
return(val);
}
void disp()
{
NODE *ptr;
if(is_empty())
{
printf("Queue empty.\n");
return;
}
ptr=front;
while(ptr!=NULL)
{
printf("%d\t",ptr->info);
ptr=ptr->link;
}
printf("\n");
}
void main()
{
int ch,c;
while(1)
{
printf("1.Insert\n");
printf("2.Delete\n");
printf("3.Display\n");
printf("4.Exit\n");
printf("Enter your choice (1-4): ");
scanf("%d",&ch);
switch(ch)
{
case 1:
printf("Enter data: ");
scanf("%d",&c);
add(c);
break;
case 2:
printf("Deleted data: %d\n",delete());
break;
case 3:
disp();
break;
case 4:
exit(0);
}
}
}
Output-
1.Insert
2.Delete
3.Display
4.Exit
Enter your choice (1-4): 1
Enter data: 2
1.Insert
2.Delete
3.Display
4.Exit
Enter your choice (1-4): 3
2
1.Insert
2.Delete
3.Display
4.Exit
Enter your choice (1-4): 2
Deleted data: 2
1.Insert
2.Delete
3.Display
4.Exit
Enter your choice (1-4): 4