1 class Queue 2 { 3 private int front; 4 private int rear; 5 private int[] a; 6 7 public Queue(int size) 8 { 9 this.front = this.rear = 0; 10 this.a = new int[size]; 11 } 12 13 public boolean isFull() 14 { 15 return (this.rear + 1) % this.a.length == this.front; 16 } 17 18 public boolean isEmpty() 19 { 20 return this.rear == this.front; 21 } 22 23 public void EnQueue(int k) throws Exception 24 { 25 if(this.isFull()) 26 throw new Exception("Overflow."); 27 else 28 { 29 this.a[this.rear] = k; 30 this.rear = (this.rear + 1) % this.a.length; 31 } 32 } 33 34 public int DeQueue() throws Exception 35 { 36 if(this.isEmpty()) 37 throw new Exception("Underflow."); 38 else 39 { 40 int key = this.a[front]; 41 this.front = (this.front + 1) % this.a.length; 42 return key; 43 } 44 } 45 46 public int getLength() 47 { 48 return (this.rear - this.front + this.a.length) % this.a.length; 49 } 50 }