标签:也有 alt bubuko 基本 技术 public ima null img
队列就是先进先出(fifo),就像排队。
栈只支持两个基本操作:入栈 push()和出栈 pop()
队列跟栈非常相似,支持的操作也很有限,最基本的操作也是两个:入队 enqueue(),放队列尾部;出队 dequeue(),从队列头部取一个元素。
所以队列跟栈一样是受限制的线性表。
队列也有两种实现
用组数实现叫数据队列
用链表实现叫链式队列
// 用数组实现的队列
public class ArrayQueue {
// 数组:items,数组大小:n
private String[] items;
private int n = 0;
// head 表示队头下标,tail 表示队尾下标
private int head = 0;
private int tail = 0;
// 申请一个大小为 capacity 的数组
public ArrayQueue(int capacity) {
items = new String[capacity];
n = capacity;
}
// 入队
public boolean enqueue(String item) {
// 如果 tail == n 表示队列已经满了
if (tail == n) return false;
items[tail] = item;
++tail;
return true;
}
// 出队
public String dequeue() {
// 如果 head == tail 表示队列为空
if (head == tail) return null;
String ret = items[head];
++head;
return ret;
}
}
标签:也有 alt bubuko 基本 技术 public ima null img
原文地址:https://www.cnblogs.com/jiangxiaoxian/p/9822982.html