码迷,mamicode.com
首页 > 其他好文 > 详细

数据结构(四)之队列

时间:2018-10-20 22:17:47      阅读:175      评论:0      收藏:0      [点我收藏+]

标签:也有   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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!