Add Circular Queue (#2528)
This commit is contained in:
parent
0145352120
commit
ad81d0ef45
115
DataStructures/Queues/CircularQueue.java
Normal file
115
DataStructures/Queues/CircularQueue.java
Normal file
@ -0,0 +1,115 @@
|
||||
//This program implements the concept of CircularQueue in Java
|
||||
//Link to the concept: (https://en.wikipedia.org/wiki/Circular_buffer)
|
||||
|
||||
public class CircularQueue {
|
||||
public static void main(String[] args) {
|
||||
circularQueue cq= new circularQueue(5);
|
||||
System.out.println(cq.isEmpty());
|
||||
System.out.println(cq.isFull());
|
||||
cq.enQueue(1);
|
||||
cq.enQueue(2);
|
||||
cq.enQueue(3);
|
||||
cq.enQueue(4);
|
||||
cq.enQueue(5);
|
||||
|
||||
System.out.println(cq.deQueue());
|
||||
System.out.println(cq.deQueue());
|
||||
System.out.println(cq.deQueue());
|
||||
System.out.println(cq.deQueue());
|
||||
System.out.println(cq.deQueue());
|
||||
System.out.println(cq.isFull());
|
||||
System.out.println(cq.isEmpty());
|
||||
cq.enQueue(6);
|
||||
cq.enQueue(7);
|
||||
cq.enQueue(8);
|
||||
System.out.println(cq.peek());
|
||||
System.out.println(cq.peek());
|
||||
cq.deleteQueue();
|
||||
|
||||
}
|
||||
}
|
||||
class circularQueue{
|
||||
int[] arr;
|
||||
int topOfQueue;
|
||||
int beginningOfQueue;
|
||||
int size;
|
||||
public circularQueue(int size){
|
||||
arr=new int[size];
|
||||
topOfQueue=-1;
|
||||
beginningOfQueue=-1;
|
||||
this.size=size;
|
||||
}
|
||||
public boolean isEmpty(){
|
||||
if(beginningOfQueue==-1){
|
||||
return true;
|
||||
}else{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public boolean isFull(){
|
||||
if(topOfQueue+1==beginningOfQueue){
|
||||
return true;
|
||||
}else if(topOfQueue==size-1 && beginningOfQueue==0){
|
||||
return true;
|
||||
}else{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public void enQueue(int value){
|
||||
if(isFull()){
|
||||
System.out.println("The Queue is full!");
|
||||
}
|
||||
else if(isEmpty()) {
|
||||
beginningOfQueue=0;
|
||||
topOfQueue++;
|
||||
arr[topOfQueue]=value;
|
||||
System.out.println(value+" has been successfully inserted!");
|
||||
}else{
|
||||
if(topOfQueue+1==size){
|
||||
topOfQueue=0;
|
||||
}else{
|
||||
topOfQueue++;
|
||||
}
|
||||
arr[topOfQueue]=value;
|
||||
System.out.println(value+" has been successfully inserted!");
|
||||
}
|
||||
}
|
||||
|
||||
public int deQueue(){
|
||||
if(isEmpty()){
|
||||
System.out.println("The Queue is Empty!");
|
||||
return -1;
|
||||
}else{
|
||||
int res= arr[beginningOfQueue];
|
||||
arr[beginningOfQueue]=Integer.MIN_VALUE;
|
||||
if(beginningOfQueue==topOfQueue){
|
||||
beginningOfQueue=topOfQueue=-1;
|
||||
}else if(beginningOfQueue+1==size){
|
||||
beginningOfQueue=0;
|
||||
}else{
|
||||
beginningOfQueue++;
|
||||
}
|
||||
return res;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public int peek(){
|
||||
if(isEmpty()){
|
||||
System.out.println("The Queue is Empty!");
|
||||
return -1;
|
||||
}else{
|
||||
return arr[beginningOfQueue];
|
||||
}
|
||||
}
|
||||
|
||||
public void deleteQueue(){
|
||||
arr=null;
|
||||
System.out.println("The Queue is deleted!");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user