一、队列
1.1 顺序一般队列
1.1.1 概述
这种队列有重大缺陷,不能够充分运用空间,只可作为学习使用。
1.1.2 代码及详细注释
package queue;
import java.util.Scanner;
public class ArrayQueue {
private int maxSize; // 队列的实际容量大小
private int front; // 第1个元素所在位置的前1个位置的索引
private int rear; // 最后1个元素所在位置的索引
private int[] queue; // 队列本身
/**
* 构造队列的方法
* @param logicSize 队列的逻辑大小,就是指用户觉得队列大小为3时,实际需要4个。
*/
public ArrayQueue(int logicSize){
maxSize = logicSize + 1;
queue = new int[maxSize];
}
/**
* 判断队列是否已满
* @return 满为true,不满为false
*/
public boolean isFull(){
return rear == maxSize-1;
}
/**
* 判断队列是否为空
* @return 如果为空,则返回true,否则返回false
*/
public boolean isEmpty(){
return front == rear;
}
/**
* 返回队列目前的元素个数
* @return 队列目前的元素个数
*/
public int size(){
return rear - front;
}
/**
* 入队
* @param n
* @return 入队成功返回true,否则返回false
*/
public boolean push(int n){
// 入队前先检查是否已满
if(isFull()){
System.out.println("队满!");
return false;
}
rear++;
queue[rear] = n;
return true;
}
/**
* 出队
* @return 出队的元素
*/
public int pop(){
// 出队前先检查是否为空,如果为空抛出异常
if (isEmpty()){