数据结构之队列
Posted jiangxiaoxian
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据结构之队列相关的知识,希望对你有一定的参考价值。
队列就是先进先出(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;
}
}
以上是关于数据结构之队列的主要内容,如果未能解决你的问题,请参考以下文章