1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
| class MyCircularQueue {
int[] data; int size, head, tail;
public MyCircularQueue(int k) { data = new int[k]; size = 0; head = 0; tail = k - 1; } public boolean enQueue(int value) { if (isFull()) return false; tail = tail == data.length - 1 ? 0 : tail + 1; data[tail] = value; ++size; return true; } public boolean deQueue() { if (isEmpty()) return false; head = head == data.length - 1 ? 0 : head + 1; --size; return true; } public int Front() { return isEmpty() ? -1 : data[head]; } public int Rear() { return isEmpty() ? -1 : data[tail]; } public boolean isEmpty() { return size == 0; } public boolean isFull() { return size == data.length; } }
|