队列
队列是一个有序列表,可以用数组和链表来实现。
遵循先进先出原则。
1、数组模拟队列
1 | public class ArrayQueueDemo { |
2、环形队列
1.目前数组使用一次之后就不能再使用了,没有达到复用的效果。
2.将数组使用算法,改进成为一个环形队列 取模%
循环队列中,由于入队时尾指针向前追赶头指针;出队时头指针向前追赶尾指针,造成队空和队满时头尾指针均相等。因此,无法通过条件front==rear来判别队列是”空”还是”满”。
解决这个问题的方法至少有三种:
① 另设一布尔变量以区别队列的空和满;
② 少用一个元素的空间。约定入队前,测试尾指针在循环意义下加1后是否等于头指针,若相等则认为队满
1 | class CircleQueue { |