Stack
第一节:对于栈的理解
0)先来打个比方:就像餐厅服务员叠盘子(如下图所示)
那么这堆盘子就相当于一个栈,往上叠盘子的过程叫做Push,取出盘子叫做Pop。先被叠上去的盘子反而会在最后被取出来。
栈的特点是先进后出,只有从上面一个一个地将元素取出来。
1)栈的应用:我们电脑上面的剪切板的原理就是用栈来实现的
当我复制第一个内容时,它就会将其放在剪切板的最下面,当我再复制内容时,它就会将其堆上去;当我按下win+v时,电脑先粘贴的内容为最上面的那个。
网易云音乐的音乐收藏夹也是用栈来实现的
先被收藏进来的歌曲会被放在最下面,后被收藏进来的歌曲会被放在最上面。
2)复杂度分析
push和pop的时间复杂度都是O(1),查看栈顶元素的时间复杂度为O(1),但是查找任意元素的时间复杂度为O(N)。