java用数组实现队列
1 package com.fanmzdj.tools; 2 3 public class Test17 { 4 5 public static void main(String[] args) { 6 ArrayQueue queue = new ArrayQueue(4); 7 queue.insert(10); 8 queue.insert(20); 9 queue.insert(30); 10 queue.insert(40); 11 queue.insert(50);// 队列已满,再插入时,不会插入没有提示 12 queue.remove();// 删除,并返回删除的数据 13 queue.insert(60); 14 while(!queue.isEmpty()) { 15 print(queue.remove()); 16 } 17 } 18 19 public static void print(Object o) { 20 System.out.println(o); 21 } 22 } 23 // 用数组实现队列 24 class ArrayQueue { 25 private int front;// 取数据的下标 26 private int rear;// 存数据的下标 27 private int nItems;// 记录队列存的数据个数 28 private int maxSize;// 表示队列的大小 29 private int[] queArr;// 用数组来存放队列数据 30 31 public ArrayQueue(int size) {// 队列为空时,front、rear、nItems都是0, 32 maxSize = size; 33 queArr = new int[maxSize]; 34 front = 0; 35 rear = 0; 36 nItems = 0; 37 } 38 39 public void insert(int j) { 40 if(isFull()) { 41 return; 42 } 43 if(rear == maxSize) { 44 rear = 0; 45 } 46 queArr[rear++] = j; 47 nItems++; 48 } 49 50 public int remove() { 51 int temp = queArr[front++]; 52 if(front == maxSize) { 53 front = 0; 54 } 55 nItems--; 56 return temp; 57 } 58 59 public int peekFront() { 60 return queArr[front]; 61 } 62 63 private boolean isFull() { 64 return (nItems == maxSize); 65 } 66 67 public boolean isEmpty() { 68 return (nItems == 0); 69 } 70 }