COMSATS UNIVERSITY, ISLAMABAD
Sahiwal Campus.
Assignment 2
Assignment Title:
“Circular Queue”
Submitted To:
Sir Sanan
Submitted By:
Name: Hareem Aman
Registration #: SP20-BSI-002
Course: Data Structure
Course code: CSC211
Degree: BS Bioinformatics
Semester-3 Batch-22
Date: 15th April, 2021
Circular Queue:
Circular Queue is a linear data structure in which the operations are performed based on FIFO
principle and the last position is connected back to the first position to make a circle. It is also
called 'Ring Buffer'. In a normal Queue, we can insert elements until queue becomes full.
Operations in Circular queue:
1. Enqueue
Adding an element in the queue if there is space in the queue.
2. Dequeue
Removing elements from a queue if there are any elements in the queue
3. Front
Get the first item from the queue.
4. Rear
Get the last item from the queue.
5. isEmpty/isFull
Checks if the queue is empty or full.
C++ Code for Queue Implementation:
#include <iostream>
using namespace std;
int queue[100], n = 100, front = - 1, rear = - 1;
void Insert() {
int val;
if (rear == n - 1)
cout<<"Queue Overflow"<<endl;
else {
if (front == - 1)
front = 0;
cout<<"Insert the element in queue : "<<endl;
cin>>val;
rear++;
queue[rear] = val;
}
}
void Delete() {
if (front == - 1 || front > rear) {
cout<<"Queue Underflow ";
return ;
} else {
cout<<"Element deleted from queue is : "<< queue[front] <<endl;
front++;;
}
}
void Display() {
if (front == - 1)
cout<<"Queue is empty"<<endl;
else {
cout<<"Queue elements are : ";
for (int i = front; i <= rear; i++)
cout<<queue[i]<<" ";
cout<<endl;
}
}
int main() {
int ch;
cout<<"1) Insert element to queue"<<endl;
cout<<"2) Delete element from queue"<<endl;
cout<<"3) Display all the elements of queue"<<endl;
cout<<"4) Exit"<<endl;
do {
cout<<"Enter your choice : "<<endl;
cin>>ch;
switch (ch) {
case 1: Insert();
break;
case 2: Delete();
break;
case 3: Display();
break;
case 4: cout<<"Exit"<<endl;
break;
default: cout<<"Invalid choice"<<endl;
}
} while(ch!=4);
return 0;
}
Output:
Dry running: