Circular Queue in Data Structure
Circular Queue:
In a circular queue, when the rear or front reaches then the rear or front will be 0. The increment of the rear or front is:
MAXSIZE-1 rear=(rear+1) % MAX and front=(front+1) % MAX
Algorithm for insertion into circular queue:
Algorithm fnCirQInsert(arrCQueue[], Data) { if(boolQfull==TRUE) Queue is full; else { arrCQueue[rear]=Data; rear=(rear+1) % MAXSIZE; boolQempty=FALSE; if(rear==front) boolQfull=TRUE; } } // End of Algorithm
Algorithm for deletion into circular queue:
Algorithm fnCirQDelete(arrCQueue[]) { if(boolQempty==TRUE) Queue is empty; else { Data=arrCQueue[front]; front=(front+1) % MAXSIZE; boolQfull=FALSE; if(front==rear) boolQempty=TRUE; } }