Queue 迴圈佇列程式碼 java
阿新 • • 發佈:2021-11-23
1 package Queue; 2 3 public class Queue { 4 private int maxSize; 5 private int front; 6 private int rear; 7 private int[] arr; 8 9 public Queue(int maxSize){ 10 this.maxSize=maxSize; 11 arr=new int[maxSize]; 12 } 13 14 public void init(){ 15 front=0;16 rear=0; 17 } 18 19 public boolean isFull(){ 20 return (rear+1)%maxSize==front; 21 } 22 23 public boolean isEmpty(){ 24 return rear==front; 25 } 26 27 public void add(int value){ 28 if(isFull()) 29 System.out.println("isFull"); 30else{ 31 arr[rear]=value; 32 rear=(rear+1)%maxSize; 33 System.out.println("add: "+value); 34 } 35 } 36 37 public void delete(){ 38 if(isEmpty()) 39 System.out.println("isEmpty"); 40 else{ 41 System.out.println("delete: "+arr[front]);42 front=(front+1)%maxSize; 43 } 44 } 45 46 public void printQueue(){ 47 if(isEmpty()){ 48 System.out.println("isFull"); 49 }else{ 50 System.out.print("getQueue: "); 51 for (int i = (front+1)%maxSize; i <= rear; i=(i+1)%maxSize) { 52 System.out.print(arr[i]+" "); 53 } 54 System.out.println(); 55 } 56 } 57 58 public int getHead(){ 59 if(isEmpty()){ 60 System.out.println("isEmpty"); 61 return 0; 62 } 63 return arr[front]; 64 } 65 }
在迴圈佇列程式碼中:
front作為佇列頭部,也就是陣列尾部。
rear作為佇列尾部,也就是陣列頭部。
迴圈佇列中具體判滿條件為:陣列長度等於maxSize-1,(有一個單位作為約定,陣列無法被填滿,即當陣列長度等於maxSize-1時,就預設此佇列滿了)