前言
时间过的真快呀,上次发文章还是在2月,上学之后很忙,现在肯定要将数据结构的内容尽快的更新完成,早日拿到专家博主。Stack叫栈,或者叫堆栈,这是一个很重点的概念,我将在这篇文章中举出很多的例子,让你能在生活中,windows系统发现那些叫做栈。
定义
栈:是只允许在一端进行插入或者删除操作的线性表
生活的例子:
在我们的生活中叠盘子是一个很好的例子作为栈的案例,在餐厅中,我们将盘子洗完后push叠起来,服务员负责pop(破卜)后乘菜。而这个过程中我们不停地叠,第一个盘子被我们放到了最底下,后面的盘子被放到了最前面,我们取出时最先拿最上面的。
叠盘子
这也就是我们生活中栈的应用。(tips:其实push就是增加,pop就是删除)。
Windows中的堆的应用:
案例1——剪贴板
在windows中我们的剪贴板功能:window键+V键可以打开剪贴板
我们新建一个文档,将这7个数作为盘子。我们从第一个开始复制,一直复制到第7个。
在剪贴板上,我们看到了最先复制的数放到了最后,最后复制的放到了最前面,这就是windows中stack的应用。
案例2——浏览器最近的标签页
在浏览器中最近关闭的标签页也是栈的应用。
时间复杂度:
我们想要push一个元素,或者pop一个元素的时间复杂度都是O(1)
而我们想要查询中间的一个元素的话O(N)
后记:
不知道有没有朋友写过IDE,而在IDE的匹配括号中也用到了栈。很多朋友问我知道了这些思想,但是自己写代码的时候还是无法实现栈,我觉得这个问题是因为你对这个语言的不熟悉,我不是大学的教授,不会给你布置家庭作业,栈的代码实现更多还是思想和案例。数据结构更重要的是思想和案例。(如果后面需要的朋友多的话,我也会出代码实现数据结构的文章)。