栈是一种后进先出的数据结构,python列表的本身就是实现栈结构的基本操作,例如列表的append()方法是在列表的尾部追加元素,pop()方法实在列表的尾部删除元素,这和栈的操作类似。但是直接使用python列表对象模拟栈操作是不推荐的,当列表的元素为空时如果再次执行pop()方法那么会抛出异常,另外列表也无法限制栈空间的大侠。
使用列表的方式表示栈:
>>> myStack = []
>>> myStack.append(3)
>>> myStack.append(5)
>>> myStack.append(7)
>>> myStack
[3, 5, 7]
>>> myStack.pop()
7
>>> myStack.pop()
5
>>> myStack.pop()
3
>>> myStack.pop()
Traceback (most recent call last):
File "<pyshell#7>", line 1, in <module>
myStack.pop()
IndexError: pop from empty list
>>> myStack.append(3)
>>> myStack.append(5)
>>> myStack.append(7)
>>> myStack
[3, 5, 7]
>>> myStack.pop()
7
>>> myStack.pop()
5
>>> myStack.pop()
3
>>> myStack.pop()
Traceback (most recent call last):
File "<pyshell#7>", line 1, in <module>
myStack.pop()
IndexError: pop from empty list
封装列表实现栈结构:
class Stack:
def __init__(self, size = 10):
def __init__(self, size = 10):