循环队列的实现有两个点 队列的扩容 和队列如何实现循环
1:队列的循环依靠 取余数 运算符%来实现
输入指针 i=i%a.length 输出指针也是 j=j%a.length
2: 队列扩容 举一个境况 队列长度为10 要输入15个数据 输入10个数据后 进行三次出队操作 此时还有三个空间 再次输入三个之后 此时 i j 指针相遇 如果在进行入队的话 显然会出现数据覆盖 因此这个时候就要进行队列的扩容操作,每当i==j的时候进行扩容
public class XunHuanDui {
private int a[]=new int[10];
private int i=0;
private int j=0;
public void set(int value) {
a[i]=value;
i++;
i=i%a.length;
if(i==j) {
int b[]=new int[a.length*2];
for(int l=0;l<a.length;l++) {
j=j%a.length;
b[l]=a[j];
j++;
}
j=0;
i=a.length+1;
a=b;
}
}
public void get() {
if(i==j) {
System.out.println();
return;
}
System.out.print(a[j]+" ");
j++;
j=j%a.length;
}
}