![](https://i-blog.csdnimg.cn/blog_migrate/59657c639814d597c2727785a9f0824c.png)
本文由图雀社区认证作者 神奇的程序员 写作而成,图雀社区将连载其前端学习数据结构与算法系列,点击阅读原文查看作者的掘金链接,感谢作者的优质输出,让我们的技术世界变得更加美好????
前言
何为栈?何为队列?先进先出和后进先出的区别,本文就跟大家分享下栈与队列这两种数据结构的优缺点以及适用场景,欢迎各位感兴趣的开发者阅读本文。
栈的认识
概念
栈也是一种数据呈线性排列的数据结构,不过在这种结构中,我们只能访问最新添加的数据。
入栈
往栈中添加数据的操作就叫“入栈”,往栈中添加数据时,新数据被放在最上面。
![](https://i-blog.csdnimg.cn/blog_migrate/f4a7f0ebd28b5bcd8031d184b4dfe8e9.png)
出栈
从栈中取出数据的操作就叫“出栈”,从栈中取出数据时,会从最新的数据开始取。
![](https://i-blog.csdnimg.cn/blog_migrate/7eb803a1f07b523b40333d69bbbcb113.png)
优点
由于栈中存放数据的结构是后放进去的数据先取出来(后进先出),针对一些操作需要取最新数据时,选择栈作为数据结构是最合适的。
缺点
访问栈中的任意数据时,就需要从最新的数据开始取,效率较低。
队列的认识
概念
队列的数据结构与栈的数据结构相同,队列中的数据也是呈线性排列。与栈不同的地方在于:队列中添加和删除数据的操作分别是在两端进行的。
![](https://i-blog.csdnimg.cn/blog_migrate/2b7fd3f2746d86a43af2269be3e8c898.png)
入队
往队列中添加数据的操作就叫“入队”。
![](https://i-blog.csdnimg.cn/blog_migrate/8dab70dc53e4b3ae2b6c4ed44f25b57b.png)
出队
从队列中删除数据的操作就叫“出队”,从队列中取出(删除)数据时,是从最早入队的数据开始的(先进先出)。
![](https://i-blog.csdnimg.cn/blog_migrate/9fe3ae94da1bb3c56fb9f8cfe6d262b0.png)
优点
队列的特点是,最早添加进来的数据,先取出,对于需要获取最早添加的数据时,选择队列作为数据结构,将会大大的提升效率。
缺点
获取最新的数据就需要从最开始入队的数据开始查找,效率较低。
栈与队列的共同点
访问中间数据时,都需要进行取出操作。
写在最后
文中使用的图片源自《我的第一本算法书》,如若侵权,请评论区留言,作者立即删除相关图片。
文中如有错误,可以扫码文章底部的二维码关注公众号加群讨论,如果这篇文章帮到了你,欢迎点个在看和关注????
● 前端学习数据结构与算法系列(一):初识数据结构与算法● 前端学习数据结构与算法系列(二):链表与数组的基础知识● 用动画和实战打开 React Hooks(二):自定义 Hook 和 useCallback
·END·
图雀社区
汇聚精彩的免费实战教程
喜欢本文,点个“在看”告诉我