#include<stdio.h> #define SIZE 5 int cqueue[SIZE]; int front=-1, rear=-1; void enqueue(int); int dequeue(void); void display(void); int underflow(void); int overflow(void); void main() { int ch,item; printf(“***Circular Queue Operations***\n”); while(1) { printf(“1. Insert \n”); printf(“2. Delete \n”); printf(“3. Display \n”); printf(“4. Exit \n”); printf(“Enter your choice : “); scanf(“%d”,&ch); switch(ch) { case 1 : if(!overflow()) { printf(“Enter item to insert : “); scanf(“%d”,&item); enqueue(item); } else { printf(“Queue is Full\n\n”); } break; case 2 : if(!underflow()) { int ele = dequeue(); printf(“Deleted : %d\n\n”,ele); } else { printf(“Queue is Empty\n\n”); } break; case 3 : if(!underflow()) { printf(“The queue is : \n”); display(); } else { printf(“No elements to display \n”); } break; case 4 : exit(1); default : printf(“Your choice is wrong \n\n”); } } } int underflow() { if((front==-1)&&(rear==-1)) return 1; else return 0; } int overflow() { if(((front==0)&&(rear==SIZE-1))||(front==rear+1)) return 1; else return 0; } void enqueue(int item) { if((front==-1)&&(rear==-1)) { front=rear=0; } else if(rear==SIZE-1) { rear=0; } else { rear++; } cqueue[rear]=item; printf(“Inserted : %d\n\n”,item); } int dequeue() { int item ; item = cqueue[front]; if(front==rear) { front=rear=-1; } else if(front==SIZE-1) { front=0; } else { front=front+1; } return item ; } void display() { int i; if(front<=rear) { for(i=front ; i<=rear ; i++) { printf(“Element %d : %d \n”, i+1, cqueue[i]); } } else { for(i=front ; i<=SIZE-1; i++) { printf(“Element %d : %d \n”,i+1,cqueue[i]); } for(i=0 ; i<=rear ; i++) { printf(“Element %d : %d \n”,i+1,cqueue[i]); } } } |