-
Notifications
You must be signed in to change notification settings - Fork 11
/
Copy pathCircularQueue_implementation.cpp
142 lines (138 loc) · 2.56 KB
/
CircularQueue_implementation.cpp
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
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
#include<bits/stdc++.h>
using namespace std;
enum arr_Size{Size=25};
class Queue
{
private:
int rear,fr,itemcount;
public: int arr[Size];
Queue(int n):rear(-1),fr(-1)
{
for(int i=0;i<n;i++)
arr[i]=0;
}
bool isempty()
{
if(rear==-1 && fr==-1)
return true;
else
return false;
}
bool isfull(int n)
{
if((rear+1)%n==fr)
return true;
else
return false;
}
void Enqueue(int n)
{
int val;
cout<<"enter value you want to enter in queue:";
cin>>val;
if(isfull(n))
{cout<<"Queue Full\n";}
else if(isempty())
{
rear=0;
fr=0;
arr[rear]=val;
itemcount++;
}
else
{
rear=(rear+1)%n;
arr[rear]=val;
itemcount++;
}
}
int dequeue(int n)
{
int x=0;
if(isempty())
{
cout<<"Queue Full\n";
return 0;
}
else if(rear==fr)
{
x=arr[fr];
arr[fr]=0;
rear=-1;fr=-1;
itemcount--;
return x;
}
else
{
x=arr[fr];
arr[fr]=0;
fr=(fr+1)%n;
itemcount--;
return x;
}
}
void display(int n)
{
for(int i=0;i<n;i++)
cout<<arr[i]<<" ";
}
int count()
{
return(itemcount);
}
};
int main()
{
int n,choice;
cout<<"enter limit of queue:";
cin>>n;
Queue q1(n);
while(1){
cout<<"\n 1.Enter the element in queue\n";
cout<<" 2.remove element from queue\n";
cout<<" 3.is queue empty\n";
cout<<" 4.is queue full\n";
cout<<" 5.count elements in Queue\n";
cout<<" 6.display queue\n";
cout<<" 7.exit\n";
cout<<" 8.clear screen\n";
cout<<" enter your choice:-";
cin>>choice;
switch(choice)
{
case 1:
q1.Enqueue(n);
break;
case 2:
q1.dequeue(n);
break;
case 4:
if(q1.isfull(n)==true)
cout<<"queue is Full\n";
else
cout<< "queue is not Full\n";
break;
case 5:
cout<<q1.count();
break;
case 6:
q1.display(n);
break;
case 3:
if(q1.isempty()==true)
cout<<"queue is empty\n";
else
cout<< "queue is not empty\n";
break;
case 7:
exit(0);
break;
case 8:
system("cls");
break;
default:
cout<<"choose correct option";}
}
cout<<"\nNOTE:- if compiler prints 0 that means is queue is no longer connected to on those block";
return 0;
}