美文网首页
【数据结构】栈与队列

【数据结构】栈与队列

作者: 超级超级小天才 | 来源:发表于2019-08-08 21:23 被阅读0次

这是数据结构类重新复习笔记的第 二 篇,同专题的其他文章可以移步:https://www.jianshu.com/nb/39256701

栈(stack)

栈(stack)是限制插入和删除操作只能在末尾位置上进行的表,该末尾成为栈的顶(top)。是一种后进先出的表(LIFO,Last In First Out)。

栈的实现

  • 链表实现:使用单向链表实现
  • 数组实现:使用数组实现,是更加常用的方式。由C++中的vector中的back、push_back和pop_back可以很简单地实现一个栈。每个栈需要一个用于存储栈数据的数组(stackArray)和一个记录栈顶索引的值(topOfStack)(当空栈时索引为-1)

常用操作

  • push:入栈操作,将topOfStack+1,然后令stackArray[topOfStack]=newElement;
  • pop:出栈操作,outElement=stackArray[topOfStack],然后将topOfStack-1
  • top:返回栈顶元素,返回stackArray[topOfStack]

所有操作均为常数时间O(1)运行

队列(Queue)

队列也是表,是一种先进先出(First In First Out,FIFO)的数据结构,入队列的一端成为队尾,出队列的一端成为队头。

队列

队列的实现

队列也可以使用链表来实现,但通常使用循环数组来实现。

一个队列需要一个用于存储队列中数据的数组queueArray和两个位置front、back,用于记录队列的两端。为了判定队列是否空还是满,通常还增设一个元素currentSize来记录队列中现有的元素个数。

常用操作

  • enqueue:入队列
back = (back+1)%queueArray.size();
queueArray[back]=newElement;
currentSize++;
  • dequeue:出队列
outElement = queueArray[front];
fornt = (front+1)%queueArray.size();
currentSize--;
  • back:返回队尾元素,直接返回queueArray[back]
  • front:返回队头元素,直接返回queueArray[front]

以上操作均以常数时间O(1)运行


转载请注明出处,本文永久更新链接:https://blogs.littlegenius.xin/2019/08/08/【数据结构】二栈与队列/

相关文章

  • Algorithm小白入门 -- 队列和栈

    队列和栈队列实现栈、栈实现队列单调栈单调队列运用栈去重 1. 队列实现栈、栈实现队列 队列是一种先进先出的数据结构...

  • 文章列表

    基本数据结构 栈 队列 双端队列 无序链表 有序链表 递归 递归 搜索与排序 搜索

  • Axure的另类学习法(一)——队列与栈

    在学习数据结构时,书中提到了两种最基本的数据结构“队列”与“栈”。 于是,想用Axure来实现下队列和栈的两种基本...

  • 集合相关数据结构与算法

    队列 栈数据结构 比较算法 Collections Collection与Collections的区别?Colle...

  • 队列

    队列,是一个先进先出的数据结构,与栈一样,队列也是一种数组与链表的一种的受限操作所形成的特殊数据结构。 相比于栈...

  • 数组队列如何手撕?解密ArrayBlockingQueue的实现

    队列 聊起队列,你一定会联想到一个与队列相似的数据结构:栈。 为了更好的理解什么是队列,我们将它和栈来比较一下: ...

  • 【JS基础进阶】(五)JavaScript栈内存与堆内存

    (一)堆(heap),栈(stack)与队列(queue) 栈数据结构 JavaScript中并没有严格意义上区分...

  • 栈和队列—什么是栈

    栈和队列是两种重要的数据结构 从数据结构角度看,栈和队列也是线性表,其特殊性在于栈和队列的基本操作是线性表操作的子...

  • 栈和队列—什么是队列

    栈和队列是两种重要的数据结构 从数据结构角度看,栈和队列也是线性表,其特殊性在于栈和队列的基本操作是线性表操作的子...

  • 泡杯茶,我们坐下聊聊javascript事件环

    栈和队列 在计算机内存中存取数据,基本的数据结构分为栈和队列。 栈(Stack)是一种后进先出的数据结构,注意,有...

网友评论

      本文标题:【数据结构】栈与队列

      本文链接:https://www.haomeiwen.com/subject/hawfjctx.html