Skip to content

Commit ad81d0e

Browse files
authored
Add Circular Queue (TheAlgorithms#2528)
1 parent 0145352 commit ad81d0e

1 file changed

Lines changed: 115 additions & 0 deletions

File tree

Lines changed: 115 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,115 @@
1+
//This program implements the concept of CircularQueue in Java
2+
//Link to the concept: (https://en.wikipedia.org/wiki/Circular_buffer)
3+
4+
public class CircularQueue {
5+
public static void main(String[] args) {
6+
circularQueue cq= new circularQueue(5);
7+
System.out.println(cq.isEmpty());
8+
System.out.println(cq.isFull());
9+
cq.enQueue(1);
10+
cq.enQueue(2);
11+
cq.enQueue(3);
12+
cq.enQueue(4);
13+
cq.enQueue(5);
14+
15+
System.out.println(cq.deQueue());
16+
System.out.println(cq.deQueue());
17+
System.out.println(cq.deQueue());
18+
System.out.println(cq.deQueue());
19+
System.out.println(cq.deQueue());
20+
System.out.println(cq.isFull());
21+
System.out.println(cq.isEmpty());
22+
cq.enQueue(6);
23+
cq.enQueue(7);
24+
cq.enQueue(8);
25+
System.out.println(cq.peek());
26+
System.out.println(cq.peek());
27+
cq.deleteQueue();
28+
29+
}
30+
}
31+
class circularQueue{
32+
int[] arr;
33+
int topOfQueue;
34+
int beginningOfQueue;
35+
int size;
36+
public circularQueue(int size){
37+
arr=new int[size];
38+
topOfQueue=-1;
39+
beginningOfQueue=-1;
40+
this.size=size;
41+
}
42+
public boolean isEmpty(){
43+
if(beginningOfQueue==-1){
44+
return true;
45+
}else{
46+
return false;
47+
}
48+
}
49+
50+
public boolean isFull(){
51+
if(topOfQueue+1==beginningOfQueue){
52+
return true;
53+
}else if(topOfQueue==size-1 && beginningOfQueue==0){
54+
return true;
55+
}else{
56+
return false;
57+
}
58+
}
59+
60+
public void enQueue(int value){
61+
if(isFull()){
62+
System.out.println("The Queue is full!");
63+
}
64+
else if(isEmpty()) {
65+
beginningOfQueue=0;
66+
topOfQueue++;
67+
arr[topOfQueue]=value;
68+
System.out.println(value+" has been successfully inserted!");
69+
}else{
70+
if(topOfQueue+1==size){
71+
topOfQueue=0;
72+
}else{
73+
topOfQueue++;
74+
}
75+
arr[topOfQueue]=value;
76+
System.out.println(value+" has been successfully inserted!");
77+
}
78+
}
79+
80+
public int deQueue(){
81+
if(isEmpty()){
82+
System.out.println("The Queue is Empty!");
83+
return -1;
84+
}else{
85+
int res= arr[beginningOfQueue];
86+
arr[beginningOfQueue]=Integer.MIN_VALUE;
87+
if(beginningOfQueue==topOfQueue){
88+
beginningOfQueue=topOfQueue=-1;
89+
}else if(beginningOfQueue+1==size){
90+
beginningOfQueue=0;
91+
}else{
92+
beginningOfQueue++;
93+
}
94+
return res;
95+
}
96+
97+
}
98+
99+
public int peek(){
100+
if(isEmpty()){
101+
System.out.println("The Queue is Empty!");
102+
return -1;
103+
}else{
104+
return arr[beginningOfQueue];
105+
}
106+
}
107+
108+
public void deleteQueue(){
109+
arr=null;
110+
System.out.println("The Queue is deleted!");
111+
}
112+
113+
}
114+
115+

0 commit comments

Comments
 (0)