队列的特点就是先入先出
这回不像栈那样只需要瞄准最后一个坑了
你要入队的话,肯定要加到最后一个坑上,所以要守住最后一个坑
但是,你只有最后一个坑的标记还不行,因为出队你得退出第一个坑不是么
public class SimpleQueue<T> {
private T[] array;
private int head; // 队列头部的索引
private int tail; // 队列尾部的索引
public SimpleQueue(int capacity = 10) {
array = new T[capacity];
head = 0;
tail = 0;
}
// 入队
public void Enqueue(T item) {
if (tail == array.Length) {
throw new InvalidOperationException("队列已满");
}
array[tail++] = item;
}
// 出队
public T Dequeue() {
if (head == tail) {
throw new InvalidOperationException("队列为空");
}
return array[head++];
}
// 获取队列中的元素数量
public int Count {
get {
return tail - head;
}
}
}