http://interactivepython.org/courselib/static/pythonds/index.html
Problem Solving with Algorithms and Data Structures
栈 stack
是一种运算受限的线性表
限制是仅允许在表的一端进行插入和删除运算
新元素的插入和既存元素的删除发生在同一端
这一端被称为栈顶,相对地,把另一端称为栈底
向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素
从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素
LIFO原则
last-in first-out
越新的元素越靠近栈顶,越早的元素越靠近栈底
举例
一堆书,能看到书皮的只有top1,想看到下一本就得把top1拿走
网页浏览和返回,URL被存在stack结构里
重要
因为栈可以逆转序列的序:一本一本摆好一摞书的顺序 和 一本一本移走的顺序正好相反
栈操作