c program to implement queue
Post on 25-Feb-2018
217 Views
Preview:
TRANSCRIPT
-
7/25/2019 C Program to Implement Queue
1/4
* C Program to Implement Queue Data Structure using Linked List*/
#include
#include
structnode
{
intinfo;
structnode *ptr;
}*front,*rear,*temp,*front1;
intfrontelement();
voidenq(intdata);
voiddeq();
voidempty();
voiddisplay();
voidcreate();
voidqueuesize();
intcount =0;
voidmain()
{
intno,ch,e;
printf("\n1 - Enque");
printf("\n2 - Deque");
printf("\n3 - Front element");
printf("\n4 - Empty");
printf("\n5 - Exit");
printf("\n6 - Display");
printf("\n7 - Queue size");
create();
while(1)
{printf("\nEnter choice : ");
scanf("%d",&ch);
switch(ch)
{
case1:
printf("Enter data : ");
scanf("%d",&no);
enq(no);
break;
case2:deq();
-
7/25/2019 C Program to Implement Queue
2/4
break;
case3:
e =frontelement();
if(e !=0)
printf("Front element : %d",e);
else
printf("\nNo front element in Queue as queue is empty");
break;
case4:
empty();
break;
case5:
exit(0);
case6:
display();
break;
case7:
queuesize();
break;
default:
printf("Wrong choice, Please enter correct choice ");
break;
}
}
}
/* Create an empty queue */
voidcreate()
{
front =rear =NULL;
}
/* Returns queue size */
voidqueuesize()
{printf("\nQueue size : %d",count);
}
/* Enqueing the queue */
voidenq(intdata)
{
if(rear ==NULL)
{
rear =(structnode *)malloc(1*sizeof(structnode));
rear->ptr =NULL;rear->info =data;
-
7/25/2019 C Program to Implement Queue
3/4
front =rear;
}
else
{
temp=(structnode *)malloc(1*sizeof(structnode));
rear->ptr =temp;
temp->info =data;
temp->ptr =NULL;
rear =temp;
}
count++;
}
/* Displaying the queue elements */
voiddisplay()
{
front1 =front;
if((front1 ==NULL)&&(rear ==NULL))
{
printf("Queue is empty");
return;
}
while(front1 !=rear){
printf("%d ",front1->info);
front1 =front1->ptr;
}
if(front1 ==rear)
printf("%d",front1->info);
}
/* Dequeing the queue */
voiddeq(){
front1 =front;
if(front1 ==NULL)
{
printf("\nError: Trying to display elements from empty queue");
return;
}
else
if(front1->ptr !=NULL){
-
7/25/2019 C Program to Implement Queue
4/4
front1 =front1->ptr;
printf("\nDequed value : %d",front->info);
free(front);
front =front1;
}
else
{
printf("\nDequed value : %d",front->info);
free(front);
front =NULL;
rear =NULL;
}
count--;
}
/* Returns the front element of queue */
intfrontelement()
{
if((front !=NULL)&&(rear !=NULL))
return(front->info);
else
return0;
}
/* Display if queue is empty or not */voidempty()
{
if((front ==NULL)&&(rear ==NULL))
printf("\nQueue empty");
else
printf("Queue not empty");
}
top related