队列:只允许在一端进行插入操作(队尾),在另一端进行删除操作(队头)。 队列的特征就是: 先进先出。
队列的思想及实现也同样非常简单。在生活中的各种常常都需要排队进行,键盘中缓存区、操作系统中的作业调度等都有用到队列先进先出的思想。在这里同样用一个示意图展示队列的基本思想。
下面笔者才用数组存储元素,实现了一个循环队列。
队列中最重要的一个方法就是队列是否满的判断,
判断队列是否为满。队满: rear + 2 = front 或 front + maxSize -2 = rear
判断队列是否为空。队空: rear + 1 = front 或 front + maxSize -1 = rear
/** 判断队列是否为空。队空: rear + 1 = front 或 front + maxSize -1 = rear
* 通过数组容量比队列数据项的最大值大一,来区分对空和对满。
*/
public boolean isEmpty(){
return (rear + 1 == front || front + maxSize -1 == rear);
}
/**判断队列是否为满。 队满: rear + 2 = front 或 front + max