数据结构之队列

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;
  }
}






以上是关于数据结构之队列的主要内容,如果未能解决你的问题,请参考以下文章

数据结构之链式队列的代码实现及有趣应用

数据结构之链式队列的代码实现及有趣应用

perl中的队列

数据结构之栈和队列

数据结构之队列c代码实现

[数据结构]之队列