#include <iostream>
using namespace std;
#define MAX 5
class CircularQueue{
private:
int arr[MAX];
int front,rear;
public:
CircularQueue(){
front =rear=-1;
}
bool isFull(){
return(front==0 && rear==MAX-1)||(front==rear+1);
}
bool isEmpty(){
return front==-1;
}
void enqueue(int value){
if(isFull()){
cout<<"queue is full "<<endl;
return;
}
if(front==-1){
front=rear=0;
}
else if (rear == MAX- 1 && front != 0) {
rear = 0;
}
else{
rear++;
}
arr[rear]=value;
}
void dequeue(){
if(isEmpty()){
cout<<" stack underflow "<<endl;
return;
}
if(front==rear){
front=rear=-1;
}
else if(front==MAX-1){
front=0;
}
else{
front++;
}
}
void peek(){
if(isEmpty()){
cout<<" queue is empty "<<endl;
return;
}
cout<<arr[front]<<endl;
}
void display(){
if(rear>=front){
for(int i=front;i<=rear;i++)
cout<<arr[i]<<endl;
}else{
for (int i = 0; i <= rear; i++){
cout << arr[i] << endl;
}
}
}
};
int main() {
CircularQueue q;
q.enqueue(10);
q.enqueue(20);
q.enqueue(30);
q.enqueue(40);
q.enqueue(50);
q.display();
q.dequeue();
q.dequeue();
q.display();
return 0;
}
No comments:
Post a Comment