-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathimplement circular queue..cpp
More file actions
127 lines (106 loc) · 2.06 KB
/
Copy pathimplement circular queue..cpp
File metadata and controls
127 lines (106 loc) · 2.06 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
#include<iostream>
using namespace std;
#define MAX 50
// global variables - queue_array, front, rear
int queue[MAX];
int front=0,rear=0;
// Utility to Enqueue an element to the Queue
void enqueue(int num){
if((rear==MAX-1 && front==0) || (front==rear+1)){
cout<<"Queue is Full\n";
return;
}
if(rear == MAX) // front != 0
rear = 0;
rear++;
queue[rear] = num;
if(front == 0)
front=1;
}
// Utility to Dequeue an element from Queue
void dequeue(){
if(front==0){
cout<<"Queue is Empty\n";
return;
}
int number;
number = queue[front];
queue[front] = INT_MAX;
if(front == rear)
{
front = 0;
rear = 0;
}
else if(front == MAX) //rear != MAX-1
front = 1;
else
front++;
cout<<"Dequeued element is: "<<number<<"\n";
}
// Utility to display Front of Queue
void queue_front(){
if(front == 0){
cout<<"Queue is Empty\n";
return;
}
cout<<"Front of the queue is : "<<queue[front]<<"\n";
}
// Utility to display Rear of Queue
void queue_rear(){
if(rear == 0){
cout<<"Queue is Empty\n";
return;
}
cout<<"Rear of the queue is : "<<queue[rear]<<"\n";
}
// Utility to display entire Queue
void display(){
if(front == 0){
cout<<"Queue is Empty\n";
return;
}
cout<<"Queue elements are : ";
for(int i=1;i<MAX;i++){
if(queue[i] == INT_MAX)
continue;
cout<<queue[i]<<" ";
}
cout<<"\n";
}
// Driver Code
int main(){
int ch,val;
for(int i=1;i<MAX;i++)
queue[i] = INT_MAX;
cout<<"1. Enqueue\n2. Dequeue\n3. Display Front\n4. Display Rear\n5. Display queue\n6. Exit\n\n";
do{
cout<<"\nEnter your choice : ";
cin>>ch;
switch(ch){
case 1:
cout<<"Insert value : ";
cin>>val;
enqueue(val);
break;
case 2:
dequeue();
break;
case 3:
queue_front();
break;
case 4:
queue_rear();
break;
case 5:
display();
break;
case 6:
cout<<"Exit\n"<<endl;
exit(0);
default:
cout<<"Invalid Choice\n";
break;
}
}while(ch!=6);
return 0;
}