1. 程式人生 > 其它 >Queue 迴圈佇列程式碼 java

Queue 迴圈佇列程式碼 java

 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"); 30
else{ 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時,就預設此佇列滿了)