栈
栈
下压栈(或简称栈)是一种基于后进后出的(LIFO)策咯的集合类型.
其中添加移除新项总发生在同一端。这一端通常称为“顶部”。与顶部对应的端称为“底部”。栈的例子很常见,想象桌上有一堆书., 只有顶部的那本书封面可见,要看到其他书的封面,只有先移除他们上面的书.
栈的抽象数据类型
一个栈一般会实现以下方法:
Stack()
构造方法,创建一个空栈,无参数,返回值是空栈push(value)
向栈顶压入一个新数据项,需要一个数据项参数,无返回值pop()
抛出栈顶数据项,无参数,返回被抛出的数据项,栈本身发生变化is_empty()
测试栈是否空栈。不需要参数,返回布尔值size()
返回栈内数据项的数目,不需要参数,返回值是整数peak()
返回栈顶数据项,但不删除。不需要参数,栈不变
栈的python实现(一)
利用.append与.pop方法,我们可以把python内置的列表当作栈来使用(栈是一种特殊的列表),这是一种较为方便的实现方式
class Stack: def __init__(self): self.values = [] def push(self, value): self.values.append(value) def pop(self): return self.values.pop() def is_empty(self): return self.size() == 0 def size(self): return len(self.values) def peak(self): return self.values[self.size()-1]
打铁还需自身硬