前端数据结构 | 三、栈和队列



栈是一种数据呈线性排列的数据结构,在这种结构中,只能访问最新添加的数据

  • 入栈
    往栈中添加数据的操作叫入栈,往栈中添加数据时,新数据被放在最上面。

  • 出栈
    从栈中取出数据的操作就叫出栈,从栈中取出数据时,会从最新的数据开始取

  • 优点
    由于栈中存放数据的结构时是后放进去的数据先取出来,针对一些操作需要取出最新数据时,选择栈作为数据结构最适合

  • 缺点
    访问栈中的任意数据时,就需要从最新的数据开始取,效率较低

队列

队列的数据结构与站的数据结构相同,队列中的数据也是呈线性排列。与栈不同的地方在于:队列中添加和删除数据的操作分别是在两端进行的。

  • 入队
    往队列中添加数据的操作就叫入队

  • 出队
    从队列中删除数据的操作就叫出队,从队列中取出(删除)数据时,是从最早入队的数据开始的。

  • 优点
    队列的特点是,最早添加进来的数据,先取出,对于需要获取最早添加的数据时,选择队列作为数据结构,将会大大的提升效率

  • 缺点
    获取最新的数据结构就需要从最开始入队的数据开始查找,效率较低

栈与队列的共同点

访问中间数据时,都需要进行取出操作。

参考链接

awesome-coding-js - 栈和队列
神三元 - 前端算法系统练习指南 - 栈和队列篇
图雀社区 - 前端学习数据结构与算法