Python 数组实现栈 - 限制最大容量并抛出异常
下面是修改后的基于数组的栈的实现方法,限制栈的容量在最大元素数量 maxlen 内:
class Stack:
def __init__(self, maxlen=None):
self.maxlen = maxlen
self.stack = []
def is_full(self):
if self.maxlen is not None and len(self.stack) >= self.maxlen:
return True
return False
def is_empty(self):
return len(self.stack) == 0
def push(self, item):
if self.is_full():
raise Exception('栈满')
self.stack.append(item)
def pop(self):
if self.is_empty():
raise Exception('栈空')
return self.stack.pop()
def peek(self):
if self.is_empty():
raise Exception('栈空')
return self.stack[-1]
def size(self):
return len(self.stack)
在构造函数中,我们添加了一个可选参数 maxlen,用于限制栈的容量。在 push 方法中,我们先判断栈是否已满,如果已满则抛出'栈满'异常。在 is_full 方法中,我们检查栈的长度是否已达到最大元素数量 maxlen。
使用示例:
stack = Stack(maxlen=5) # 创建一个最大容量为 5 的栈
stack.push(1)
stack.push(2)
stack.push(3)
stack.push(4)
stack.push(5)
stack.push(6) # 抛出异常:栈满
print(stack.pop()) # 5
print(stack.pop()) # 4
print(stack.size()) # 3
原文地址: https://www.cveoy.top/t/topic/pahi 著作权归作者所有。请勿转载和采集!