大家好,又见面了,我是你们的朋友全栈君。
环形队列可以使用数组实现,也可以使用循环链表实现。
package www.bittech;
public class MyCircularQueue {
private int front;//队列头
private int rear;//队列尾
private int usedSize;//数据个数
private int[] elem;//数组
public MyCircularQueue(int k){
this.elem=new int[k];
this.front=0;
this.rear=0;
this.usedSize=0;
}
public boolean enQueue(int value){
if(isFull()){
return false;
}
this.elem[this.rear]=value;
this.usedSize++;
this.rear=(this.rear+1)%this.elem.length;
return true;
}
//队尾下标加上1在%
public boolean isFull(){
if((this.rear+1)%this.elem.length==this.front){
return true;
}
return false;
}
public boolean isEmpty(){
return this.rear==this.front;
}
public boolean deQueue(int value){
if(isEmpty()){
return false;
}
this.elem[front]=value;
this.front=(this.front+1)%this.elem.length;
this.usedSize--;
return true;
}
public int Front(){
if(isEmpty()){
throw new UnsupportedOperationException("队列为空");
}
return this.elem[this.front];
}
public int Rear(){
if(isEmpty()){
throw new UnsupportedOperationException("队列为空");
}
int index=this.rear == 0 ? this.elem.length-1 : this.rear-1;
return this.elem[index];
}
}
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/125500.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...