Professional Documents
Culture Documents
CIRCULAR QUEUE
#include<bits/stdc++.h>
class Node{
public:
int val;
Node* next;
Node(int v):val(v),next(nullptr){}
};
class CircularQueue{
Node *front,*rear;
if(!node){
cout<<"Insertion Unsuccessful\n";
return;
if(front==nullptr)
front=node;
else
rear->next=node;
rear=node;
rear->next=front;
void dequeueHelper(){
if(front==nullptr){
cout<<"Queue is Empty\n";
return;
if(front==rear){
Node* node=front;
front=rear=nullptr;
delete node;
else{
Node* node=front;
front=front->next;
rear->next=front;
delete node;
int peekHelper(){
return front==nullptr?-1:front->val;
void displayHelper(){
Node* node=front;
do{
cout<<node->val<<" ";
node=node->next;
}while(node!=front);
cout<<"\n";
public:
CircularQueue():front(nullptr),rear(nullptr){}
void enqueue(){
int val;
cin>>val;
enqueueHelper(val);
void dequeue(){
dequeueHelper();
void peek(){
int val=peekHelper();
if(val==-1){
cout<<"Queue is Empty\n";
return;
void display(){
if(front==nullptr){
cout<<"Queue is Empty\n";
return;
cout<<"Queue is : ";
displayHelper();
}
};
void displayMenu(){
cout<<"\n";
int main(){
CircularQueue* cq=nullptr;
int choice;
do{
displayMenu();
cin>>choice;
switch(choice){
break;
case 2 : cq->enqueue();
break;
case 3 : cq->dequeue();
break;
case 4 : cq->peek();
break;
case 5 : cq->display();
break;
case 6 : break;
}while(choice!=6);
return 0;
}
PRIORITY QUEUE
#include<bits/stdc++.h>
class Node{
public:
int val,priority;
Node* next;
};
class PriorityQueue{
Node *front;
if(!node){
cout<<"Insertion Unsuccessful\n";
return;
if(front==nullptr)
front=node;
else{
if(front->priority<priority){
node->next=front;
front=node;
else{
Node* temp=front;
while(temp->next&&temp->next->priority>priority){
temp=temp->next;
node->next=temp->next;
temp->next=node;
void dequeueHelper(){
if(front==nullptr){
cout<<"Queue is Empty\n";
return;
Node* node=front;
front=front->next;
delete node;
int peekHelper(){
return front==nullptr?-1:front->val;
void displayHelper(){
Node* node=front;
while(node){
node=node->next;
}
cout<<"\n";
public:
PriorityQueue():front(nullptr){}
void enqueue(){
int val;
cin>>val;
int priority;
cin>>priority;
enqueueHelper(val,priority);
void dequeue(){
dequeueHelper();
void peek(){
int val=peekHelper();
if(val==-1){
cout<<"Queue is Empty\n";
return;
void display(){
if(front==nullptr){
cout<<"Queue is Empty\n";
return;
}
cout<<"Queue is : ";
displayHelper();
};
void displayMenu(){
cout<<"\n";
int main(){
PriorityQueue* pq=nullptr;
int choice;
do{
displayMenu();
cin>>choice;
switch(choice){
break;
case 2 : pq->enqueue();
break;
case 3 : pq->dequeue();
break;
case 4 : pq->peek();
break;
case 5 : pq->display();
break;
case 6 : break;
}while(choice!=6);
return 0;