#include #include #define MAX 5 int queuedata[MAX]; int front = -1; int rear = -1; void add(int what) { int added_item; if((front == 0 && rear == MAX-1) || (front == rear+1)) { printf("Queue Overflow at %d\n",what); return ; } if (front == -1) { front = 0; rear = 0; } else { if(rear == MAX-1) rear = 0; else rear = rear+1; } queuedata[rear] = what ; printf("added %d\n",what); } int get() { int temp; if (front == -1) { printf("Queue Underflow\n"); return -1; } temp=queuedata[front]; if(front == rear) { front = -1; rear=-1; } else{ if(front == MAX-1) front = 0; else front = front+1; } return 1; } void show() { int fp = front; int rp = rear; if(front == -1){ printf("Queue is empty\n"); return; } printf("\n=== FRONT=%d, REAR=%d ===\n",front,rear); if (fp<=rp) { while(fp <= rp){ printf("%d ",queuedata[fp]); fp++; } }else{ while(fp <= MAX-1){ printf("%d ",queuedata[fp]); fp++; } fp = 0; while(fp <= rp){ printf("%d ",queuedata[fp]); fp++; } } printf("\n"); } void main() { add(8); add(5); add(6); add(3); add(1); add(9999); show(); get(); get(); show(); add(12); add(15); add(7777); show(); }