java版数据结构如何创建一个循环队列
1个回答
展开全部
public class CircleQueue<T> {
private int maxSize;
private int head;//头部出 始终指向即将被取出的下标
private int tail;//尾部进 始终指向即将赋值的下标
private int size;
//tail和head在队列为空或为满的时候重合,用size是否为0来区分
private Object[] array;
public CircleQueue(int maxSize){
this.maxSize=maxSize;
array=new Object[this.maxSize];
}
public synchronized boolean put(T t){
if(size<maxSize){
array[tail]=t;
tail=(tail+1)%maxSize;
size++;
return true;
}else{
return false;
}
}
public synchronized T take(){
if(size>0){
T t=(T) array[head];
head=(head+1)%maxSize;
size--;
return t;
}else{
return null;
}
}
public int size(){
return size;
}
}
private int maxSize;
private int head;//头部出 始终指向即将被取出的下标
private int tail;//尾部进 始终指向即将赋值的下标
private int size;
//tail和head在队列为空或为满的时候重合,用size是否为0来区分
private Object[] array;
public CircleQueue(int maxSize){
this.maxSize=maxSize;
array=new Object[this.maxSize];
}
public synchronized boolean put(T t){
if(size<maxSize){
array[tail]=t;
tail=(tail+1)%maxSize;
size++;
return true;
}else{
return false;
}
}
public synchronized T take(){
if(size>0){
T t=(T) array[head];
head=(head+1)%maxSize;
size--;
return t;
}else{
return null;
}
}
public int size(){
return size;
}
}
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |