更新時間:2020-02-26 12:49:34 來源:動力節(jié)點(diǎn) 瀏覽2494次
循環(huán)隊列:把存儲隊列元素的表從邏輯上看成一個環(huán),稱為循環(huán)隊列。當(dāng)隊首front=maxSize-1后,再前進(jìn)一個位置就自動到0,這可以利用除法取余運(yùn)算(%)來實現(xiàn)。
packagecom.ArrayQueue;
publicclassArrayQueue1{
publicstaticvoidmain(String[]args){
ArrayQueuearrayQueue=newArrayQueue(5);
System.out.println("判空:"+arrayQueue.isEmpty());
System.out.println("執(zhí)行入隊操作···");
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("執(zhí)行出隊操作···");
arrayQueue.deQueue();
System.out.println("隊中元素為:");
arrayQueue.getAll();
System.out.println("輸出隊中的長度:");
System.out.println(arrayQueue.getSize());
}
publicstaticclassArrayQueue{
privateintfront;//隊頭
privateintrear;//隊尾
privateintmaxSize=5;//最大容量
privateintsize;//當(dāng)前隊列長度
privateintarr[];//模擬隊列的數(shù)組
//初始化
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("隊滿,不能進(jìn)行入隊操作···");
}
size++;
arr[rear]=n;
rear=(rear+1)%maxSize;
}
//出隊
publicintdeQueue(){
if(isEmpty()){
thrownewRuntimeException("隊空,不能進(jìn)行出隊操作···");
}
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;
}
}
}
運(yùn)行結(jié)果如下圖所示:
以上就是動力節(jié)點(diǎn)Java培訓(xùn)機(jī)構(gòu)小編介紹的“Java基礎(chǔ)教程:Java循環(huán)數(shù)組隊列”的內(nèi)容,希望對大家有幫助,如有疑問,請在線咨詢,有專業(yè)老師隨時為你服務(wù)。
相關(guān)閱讀
初級 202925
初級 203221
初級 202629
初級 203743