循环队列:把存储队列元素的表从逻辑上看成一个环,称为循环队列。当队首front=maxSize-1后,再前进一个位置就自动到0,这可以利用除法取余运算(%)来实现。
packagecom.ArrayQueue;
publicclassArrayQueue1{
publicstaticvoidmain(String[]args){
ArrayQueuearrayQueue=newArrayQueue(5);
System.out.println("判空:"+arrayQueue.isEmpty());
System.out.println("执行入队操作···");
arrayQueue.enQueue(1);
arrayQueue.enQueue(2);
arrayQueue.enQueue(3);
arrayQueue.enQueue(4);
System.out.println("输出队中的长度:");
System.out.println(arrayQueue.getSize());
System.out.println("队中元素为:");
arrayQueue.getAll();
System.out.println("执行出队操作···");
arrayQueue.deQueue();
System.out.println("队中元素为:");
arrayQueue.getAll();
System.out.println("输出队中的长度:");
System.out.println(arrayQueue.getSize());
}
publicstaticclassArrayQueue{
privateintfront;//队头
privateintrear;//队尾
privateintmaxSize=5;//最大容量
privateintsize;//当前队列长度
privateintarr[];//模拟队列的数组
//初始化
publicArrayQueue(intmaxSize){
this.maxSize=maxSize;
arr=newint[maxSize];
front=0;
rear=0;
size=0;
}
//判断队空
publicbooleanisEmpty(){
returnfront==rear;
}
//判断队满
publicbooleanisFull(){
return(rear+1)%maxSize==front;
}
//入队
publicvoidenQueue(intn){
if(isFull()){
thrownewRuntimeException("队满,不能进行入队操作···");
}
size++;
arr[rear]=n;
rear=(rear+1)%maxSize;
}
//出队
publicintdeQueue(){
if(isEmpty()){
thrownewRuntimeException("队空,不能进行出队操作···");
}
size--;
intm=arr[front];
front=(front+1)%maxSize;
returnm;
}
//显示队列中的元素
publicvoidgetAll(){
if(isEmpty()){
thrownewRuntimeException("队列为空····");
}
for(inti=front;i<rear;i++){
System.out.print(arr[i]+"");
}
System.out.println();
}
//显示队的长度
publicintgetSize(){
returnsize;
}
}
}
运行结果如下图所示:
以上就是动力节点Java培训机构小编介绍的“Java基础教程:Java循环数组队列”的内容,希望对大家有帮助,如有疑问,请在线咨询,有专业老师随时为你服务。
你适合学Java吗?4大专业测评方法
代码逻辑 吸收能力 技术学习能力 综合素质
先测评确定适合在学习