前言
- 有Python基础
- 有数据结构的基础的话那当然是再好不过了
原理
先进后出
- 初始化时,栈为空。
- 数据入栈时,第一个数据先进到栈底,此时栈顶也是这个元素(因为目前栈中只有一个元素)。第二个数据入栈,则处于栈顶,即在第一个元素的上面。后续加入的情况亦是如此,第三个在第二个的上面,第四个在第三个的上面…当然以上情况仅考虑入栈,中间不曾出栈。新的元素加入后都是处在当时情况下的栈顶。
- 出栈时,栈顶的元素先出。比如上图,栈顶的e(n-1)先出,之后e(n-2)才能出…最后,底层元素e(0)才能出栈。当然,这里也是仅考虑出栈的情况。动的元素照样是栈顶元素。
- 因此,栈只对栈顶元素进行操作。
- 一般考试的时候或者笔试的时候不会单纯地出只有入栈或者出栈的情况,一般会综合起来考察。可能会出这样的题,给定一组序列,比如1,2,…,10,期间可以有入栈和出栈,让你从选项中选出不可能出现的情况。比如下面的这道题(来自某度文库)。