class Stack(object):
def __init__(self, limit=10):
self.stack = [] # 存放元素
self.limit = limit # 栈容量极限
def push(self, data):
# 判断栈是否溢出
if len(self.stack) >= self.limit:
raise IndexError('超出栈容量极限')
self.stack.append(data)
def pop(self):
if self.stack:
return self.stack.pop()
else:
# 空栈不能被弹出元素
raise IndexError('pop from an empty stack')
def peek(self):
# 查看栈的栈顶元素(最上面的元素)
if self.stack:
return self.stack[-1]
def is_empty(self):
# 查看堆栈的最上面的元素
return not bool(self.stack判断栈是否溢)
def size(self):
# 返回栈的大小
return len(self.stack)
栈使用有序集合-列表来实现。栈顶即为列表尾。栈容量即为列表的容量。
- 入栈时,首先判断栈满否,然后使用列表的append,向列表尾添加元素。
- 出栈时,只能从栈顶出栈,判断栈存在if list:,使用pop函数删除并返回列表尾的元素。空栈则报错。
- 查看栈顶的元素,判断栈存在if list:,返回list【-1】
- 查看栈的长度,不用判断栈空不空,直接使用len(list)函数。
- 判断栈是否为空,使用not bool(list)。为空则返回Ture。