将以上代码中的顺序栈改成循环栈
时间: 2024-02-01 07:13:14 浏览: 50
好的,以下是将顺序栈改成循环栈的代码:
class CircularStack:
def __init__(self, capacity):
self.capacity = capacity
self.stack = [None] * capacity
self.top = -1
def is_empty(self):
return self.top == -1
def is_full(self):
return (self.top + 1) % self.capacity == 0
def push(self, value):
if self.is_full():
raise Exception("Stack is full")
self.top = (self.top + 1) % self.capacity
self.stack[self.top] = value
def pop(self):
if self.is_empty():
raise Exception("Stack is empty")
value = self.stack[self.top]
self.top = (self.top - 1) % self.capacity
return value
def peek(self):
if self.is_empty():
raise Exception("Stack is empty")
return self.stack[self.top]
循环栈的实现与顺序栈的实现相似,只是在判断栈是否满和入栈、出栈时需要注意对数组下标的取模操作。
阅读全文
相关推荐








