一个简单的队列
package queue;
public class Queue { // 队列类
private int maxSize; // 队列长度,由构造函数初始化
private int[] queArray; // 队列
private int front; // 队头
private int rear; // 队尾
private int num; // 元素的个数
public Queue(int s) { // 构造函数
maxSize = s;
queArray = new int[maxSize];
front = 0;
rear = -1;
num = 0;
}
public void add(int j) { // 进队列
if (rear == maxSize - 1) // 处理循环
rear = -1;
queArray[++rear] = j; // 队尾指针加1,把值j加入队尾
num++;
}
public int poll() { // 取得队列的队头元素,且从队列移除
int temp = queArray[front++]; // 取值和修改队头指针
if (front == maxSize) // 处理循环
front = 0;
num--;
return temp;
}
public int peek() { // 取得队列的队头元素,但不从从队列移除
return queArray[front];
}
public boolean isEmpty() { // 判队列是否为空。若为空返回一个真值,否则返回一个假值。
return (num == 0);
}
public boolean isFull() { // 判队列是否已满。若已满返回一个真值,否则返回一个假值。
return (num == maxSize);
}
public int size() { // 返回队列的长度
return num;
}
public static void main(String[] args) {
Queue que=new Queue(3);
que.add(1);
que.add(2);
que.add(3);
que.add(4);
int s=que.size();
System.out.println(s);
for(int i=0;i<s;i++){
System.out.println(que.poll());
}
}
}