- 什么是栈?
- 栈(stack),是一种有序数据项的集合,数据项的加入和移除都发生在同一端。
- 发生加入或移除的一端是栈顶,另一端是栈底。
- 日常生活中有很多栈的应用,如盘子、托盘、书堆等等
- 栈的特性
距离栈底越近的数据项 , 留在栈中的时间 就越长,最新加入栈的数据项会被最先移除
这种次序通常称为 “ 后进先出 LIFO ” :Last in First out, 这是一种基于数据项保存时间的次序,时间越短的离栈顶越近,时间越长的离栈底越近
总结起来很简单,就是早放进去的,后取出,在栈离的时间就越长,先进后出,进栈和出栈的次序正好相反。
- 栈定义的操作
操作样例:
python实现:
class Stack():
"""定义一个栈"""
def __init__(self):
self.items = []
def isEmpty(self):
return self.items() == []
def pop(self):
return self.items.pop()
def push(self, item):
return self.items.append(item)
def peek(self):
return self.items[len(self.items)-1]
def size(self):
return len(self.items)
当然也可以调换栈顶和栈底的方向,但是这样会增加时间复杂度: