在数组中我们可以使用下标来访问数组中的元素,但有时候我们想要限制访问顺序。
队列遵循着先进先出的规则,操作的数据永远是队首的元素。
为了实现队列,我们可以使用动态数组和指向队列头部的索引。
如上所述,队列应支持两种操作:入队和出队。入队会向队列追加一个新元素,而出队会删除第一个元素。 所以我们需要一个索引来指出起点。
// "static void main" must be defined in a public class.
class MyQueue {
// store elements private List data;
// a pointer to indicate the start position private int p_start;
public MyQueue() {
data = new ArrayList();
p_start = 0;
}
/** Insert an element into the queue. Return true if the operation is successful. */
public boolean enQueue(int x) {
data.add(x);
return true;
};
/** Delete an element from the queue. Return true if the operation is successful. */
public boolean deQueue() {
if (isEmpty()