数据结构——堆栈

前言

时间过的真快呀,上次发文章还是在2月,上学之后很忙,现在肯定要将数据结构的内容尽快的更新完成,早日拿到专家博主。Stack叫栈,或者叫堆栈,这是一个很重点的概念,我将在这篇文章中举出很多的例子,让你能在生活中,windows系统发现那些叫做栈。

定义

栈:是只允许在一端进行插入或者删除操作的线性表

生活的例子:

在我们的生活中叠盘子是一个很好的例子作为栈的案例,在餐厅中,我们将盘子洗完后push叠起来,服务员负责pop(破卜)后乘菜。而这个过程中我们不停地叠,第一个盘子被我们放到了最底下,后面的盘子被放到了最前面,我们取出时最先拿最上面的。

叠盘子

stack.png
这也就是我们生活中栈的应用。(tips:其实push就是增加,pop就是删除)。

Windows中的堆的应用:

案例1——剪贴板

在windows中我们的剪贴板功能:window键+V键可以打开剪贴板

我们新建一个文档,将这7个数作为盘子。我们从第一个开始复制,一直复制到第7个。
image.png
在剪贴板上,我们看到了最先复制的数放到了最后,最后复制的放到了最前面,这就是windows中stack的应用。
image.png

案例2——浏览器最近的标签页
image.png
在浏览器中最近关闭的标签页也是栈的应用。

时间复杂度:

我们想要push一个元素,或者pop一个元素的时间复杂度都是O(1)

而我们想要查询中间的一个元素的话O(N)

后记:

不知道有没有朋友写过IDE,而在IDE的匹配括号中也用到了栈。很多朋友问我知道了这些思想,但是自己写代码的时候还是无法实现栈,我觉得这个问题是因为你对这个语言的不熟悉,我不是大学的教授,不会给你布置家庭作业,栈的代码实现更多还是思想和案例。数据结构更重要的是思想和案例。(如果后面需要的朋友多的话,我也会出代码实现数据结构的文章)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值