Last active
February 1, 2021 17:50
-
-
Save cruiz24/7449c47c37f61d5c869b70fc6bb7abdd to your computer and use it in GitHub Desktop.
Implementation of Circular Queue using C++
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Implementation using C++ programming | |
#include <iostream> | |
#define SIZE 5 /* Size of Circular Queue */ | |
using namespace std; | |
class Queue { | |
private: | |
int items[SIZE], front, rear; | |
public: | |
Queue(){ | |
front = -1; | |
rear = -1; | |
} | |
bool isFull(){ | |
if(front == 0 && rear == SIZE - 1){ | |
return true; | |
} | |
if(front == rear + 1) { | |
return true; | |
} | |
return false; | |
} | |
bool isEmpty(){ | |
if(front == -1) return true; | |
else return false; | |
} | |
void enQueue(int element){ | |
if(isFull()){ | |
cout << "Queue is full"; | |
} else { | |
if(front == -1) front = 0; | |
rear = (rear + 1) % SIZE; | |
items[rear] = element; | |
cout << endl << "Inserted " << element << endl; | |
} | |
} | |
int deQueue(){ | |
int element; | |
if(isEmpty()){ | |
cout << "Queue is empty" << endl; | |
return(-1); | |
} else { | |
element = items[front]; | |
if(front == rear){ | |
front = -1; | |
rear = -1; | |
} /* Q has only one element, so we reset the queue after deleting it. */ | |
else { | |
front=(front+1) % SIZE; | |
} | |
return(element); | |
} | |
} | |
void display() | |
{ | |
/* Function to display status of Circular Queue */ | |
int i; | |
if(isEmpty()) { | |
cout << endl << "Empty Queue" << endl; | |
} | |
else | |
{ | |
cout << "Front -> " << front; | |
cout << endl << "Items -> "; | |
for(i=front; i!=rear;i=(i+1)%SIZE) | |
cout << items[i]; | |
cout << items[i]; | |
cout << endl << "Rear -> " << rear; | |
} | |
} | |
}; | |
int main() | |
{ | |
Queue q; | |
q.enQueue(1); | |
q.enQueue(2); | |
q.enQueue(3); | |
q.enQueue(4); | |
q.enQueue(5); | |
q.enQueue(6); | |
q.deQueue(); | |
q.deQueue(); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment