Queue Using Linked List in C / Data Structure / Linear Data Structure

               Problem: Queue Using Linked List

#include<stdio.h>
#include<conio.h>
#include<stdlib.h>

struct node
{
int data;
struct node *nextlink;
}*front=NULL,*rear=NULL,*new1,*temp;

void insert();
void del();
void display();

void main()
{
int num;
clrscr();
while(1)
{
printf("\n*** QUEUE OPERATIONS LL ***\n");
printf("1.INSERT\n2.DELETE\n3.DISPLAY\n4.EXIT\n");
printf("Enter your Choice:");
scanf("%d",&num);

switch(num)
{
case 1:
insert();
break;
case 2:
del();
break;
case 3:
display();
break;
case 4:
exit(0);
break;
default:
printf("\nWrong Choice!!");
break;
}
}
}

void insert()
{
int n;
new1=(struct node*)malloc(sizeof(struct node));
printf("Enter the value:");
scanf("%d",&n);
new1->data=n;
new1->nextlink=NULL;
if(front==NULL && rear==NULL)
{
front=rear=new1;
}
else
{
rear->nextlink=new1;
rear=new1;
}
}

void del()
{
if(front==NULL && rear==NULL)
{
printf("\nQueue is Empty!!");
}
else if(front==rear)
{
printf("%d is a deleted element!!",front->data);
free(front);
free(rear);
front=rear=NULL;
}
else
{
temp=front;
front=temp->nextlink;
printf("\n%d is a deleted element!!",temp->data);
free(temp);
temp = NULL;
}
}

void display()
{
if(front==NULL && rear==NULL)
{
printf("\nQUEUE IS EMPTY!!\n");
}
else
{
temp=front;
while(temp->nextlink!=NULL)
{
printf("%d\t",temp->data);
temp=temp->nextlink;
}
printf("%d\t",temp->data);
}
}

Comments