public class Test {
public static void main(String[] args) {
Queue q1 = new Queue(5);
System.out.println(q1.isEmpty()); // true
q1.addQueue(1);
q1.addQueue(2);
q1.addQueue(3);
q1.addQueue(4);
q1.addQueue(5);
System.out.println(q1.isFull()); //true
System.out.println("front的元素是"+q1.getQueueFront()); //front的元素是1
System.out.println("rear的元素是"+q1.getQueueRear()); //rear的元素是5
System.out.println(q1.outQueue()); //1
System.out.println(q1.outQueue()); //2
System.out.println(q1.outQueue()); //3
System.out.println("---------------------------");
System.out.println(q1.getQueueFront());//4
System.out.println(q1.getQueueRear());//5
}
}
class Queue{
private int maxSize; //容量
private int front; //队列的头
private int rear; // 队列的尾
private int[] arr; // 存储数据的介质——数组
//创建队列的构造器
public Queue(int maxSize){
this.maxSize = maxSize; //队列的容量
front = rear = -1; //初始位置确定下来
arr = new int[maxSize];
}
//判断队列是否满
public boolean isFull(){
return rear == maxSize-1;
}
//判断队列是否空
public boolean isEmpty(){
return rear == front;
}
//入列
public void addQueue(int i){
if(isFull()){
System.out.println("队列已满,无法入列");
return;
}else{
rear++;
arr[rear] = i;
return;
}
}
//出列
public int outQueue(){
if(isEmpty()){
System.out.println("队列空,无法出列");
return -1;
}
front++;
return arr[front];
}
//查看队首(front)元素
public int getQueueFront(){
if(isEmpty()){
System.out.println("队列为空,无法查看队首元素");
return -1;
}else{
return arr[front+1];
}
}
//查看队尾(rear)元素
public int getQueueRear(){
if(isEmpty()){
System.out.println("队列为空,无法查看队尾元素");
return -1;
}else{
return arr[rear];
}
}
}
经过测试,功能全部正常。