📄 arrayqueue.java
字号:
package stackqueue;
public class ArrayQueue {
private int[] queue;
private int currentSize;
private int front;
private int back;
private static final int DEFAULT_CAPACITY = 10;
private int increment(int x) {
if(++x == queue.length)
x = 0;
return x;
}
private void doubleQueue() {
int[] temp = new int[queue.length * 2];
for(int i = 0; i < currentSize; i++, front = increment(front))
temp[i] = queue[front];
queue = temp;
front = 0;
back = currentSize - 1;
}
public ArrayQueue() {
queue = new int[DEFAULT_CAPACITY];
makeEmpty();
}
public boolean isEmpty() {
return currentSize == 0;
}
public void enqueue(int num){
if(currentSize == queue.length)
doubleQueue();
back = increment(back);
queue[back] = num;
currentSize++;
}
public int dequeue() throws UnderflowException {
if(isEmpty())
throw new UnderflowException("Array Queue dequeue");
currentSize--;
int value = queue[front];
front = increment(front);
return value;
}
public int getFront() throws UnderflowException {
if(isEmpty())
throw new UnderflowException("Array Queue getFront");
return queue[front];
}
public void makeEmpty() {
currentSize = 0;
front = 0;
back = -1;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -