循環(huán)隊(duì)列:把存儲(chǔ)隊(duì)列元素的表從邏輯上看成一個(gè)環(huán),稱(chēng)為循環(huán)隊(duì)列。當(dāng)隊(duì)首front=maxSize-1后,再前進(jìn)一個(gè)位置就自動(dòng)到0,這可以利用除法取余運(yùn)算(%)來(lái)實(shí)現(xiàn)。
packagecom.ArrayQueue;
publicclassArrayQueue1{
publicstaticvoidmain(String[]args){
ArrayQueuearrayQueue=newArrayQueue(5);
System.out.println("判空:"+arrayQueue.isEmpty());
System.out.println("執(zhí)行入隊(duì)操作···");
arrayQueue.enQueue(1);
arrayQueue.enQueue(2);
arrayQueue.enQueue(3);
arrayQueue.enQueue(4);
System.out.println("輸出隊(duì)中的長(zhǎng)度:");
System.out.println(arrayQueue.getSize());
System.out.println("隊(duì)中元素為:");
arrayQueue.getAll();
System.out.println("執(zhí)行出隊(duì)操作···");
arrayQueue.deQueue();
System.out.println("隊(duì)中元素為:");
arrayQueue.getAll();
System.out.println("輸出隊(duì)中的長(zhǎng)度:");
System.out.println(arrayQueue.getSize());
}
publicstaticclassArrayQueue{
privateintfront;//隊(duì)頭
privateintrear;//隊(duì)尾
privateintmaxSize=5;//最大容量
privateintsize;//當(dāng)前隊(duì)列長(zhǎng)度
privateintarr[];//模擬隊(duì)列的數(shù)組
//初始化
publicArrayQueue(intmaxSize){
this.maxSize=maxSize;
arr=newint[maxSize];
front=0;
rear=0;
size=0;
}
//判斷隊(duì)空
publicbooleanisEmpty(){
returnfront==rear;
}
//判斷隊(duì)滿
publicbooleanisFull(){
return(rear+1)%maxSize==front;
}
//入隊(duì)
publicvoidenQueue(intn){
if(isFull()){
thrownewRuntimeException("隊(duì)滿,不能進(jìn)行入隊(duì)操作···");
}
size++;
arr[rear]=n;
rear=(rear+1)%maxSize;
}
//出隊(duì)
publicintdeQueue(){
if(isEmpty()){
thrownewRuntimeException("隊(duì)空,不能進(jìn)行出隊(duì)操作···");
}
size--;
intm=arr[front];
front=(front+1)%maxSize;
returnm;
}
//顯示隊(duì)列中的元素
publicvoidgetAll(){
if(isEmpty()){
thrownewRuntimeException("隊(duì)列為空····");
}
for(inti=front;i<rear;i++){
System.out.print(arr[i]+"");
}
System.out.println();
}
//顯示隊(duì)的長(zhǎng)度
publicintgetSize(){
returnsize;
}
}
}
運(yùn)行結(jié)果如下圖所示:
以上就是深圳達(dá)內(nèi)教育Java培訓(xùn)機(jī)構(gòu)小編介紹的“Java基礎(chǔ)教程:Java循環(huán)數(shù)組隊(duì)列”的內(nèi)容,希望對(duì)大家有幫助,如有疑問(wèn),請(qǐng)?jiān)诰€咨詢,有專(zhuān)業(yè)老師隨時(shí)為你服務(wù)。