1、什么是栈
假如有一个又细又长的圆筒,圆筒一端封闭,另一端开口;往圆筒里放入乒乓球,先放入的靠近圆筒底部,后放入的靠近圆筒入口,如下图:

如果要想取出这些乒乓球,则只能按照和放入顺序相反的顺序来取,先取出后放入的,再取出先放入的,而不可能把最里面最先放入的乒乓球优先取出

栈(stack)是一种线性数据结构,它就像一个上图所示的放入乒乓球的圆筒容器,栈中的元素只能先入后出(First In Last Out,简称FILO);最早进入的元素存放的位置叫作栈底(bottom),最后进入的元素存放的位置叫作栈顶 (top)
栈这种数据结构既可以用数组来实现,也可以用链表来实现:
栈的数组实现如下图:

栈的链表实现如下图:

2、栈的基本操作
【1】入栈
入栈操作(push)就是把新元素放入栈中
图解数据结构:栈的原理与应用

本文介绍了栈这一数据结构,包括其FILO特性、基本操作如入栈和出栈,以及栈在递归逻辑和面包屑导航等场景中的应用。栈可以用数组或链表实现,入栈和出栈操作的时间复杂度为O(1)。
最低0.47元/天 解锁文章
282

被折叠的 条评论
为什么被折叠?



