# time complexity all O(1)
class Stack:
def __init__(self):
# 初始化栈
self.stack = []
# 栈顶为-1说明没有元素
self.top = -1
def is_empty(self):
return len(self.stack) == 0 #或者返回栈顶
def push(self, item):
self.stack.append(item)
self.top += 1
def pop(self):
if self.is_empty():
raise Exception("empty stack")
self.stack.pop() # pop默认删除最后一个元素
self.top -= 1
def peek(self):
if self.is_empty():
raise Exception("empty stack")
return self.stack[-1] # 查看栈顶的元素
def size(self):
return len(self.stack)
def peek_all(self):
for i in range(len(self.stack) - 1, -1, -1):
print(self.stack[i]) # 从栈顶输出至栈底的元素
stack = Stack()
stack.push(1)
stack.push(2)
print(stack.top) # 1
python栈的实现(入栈,出栈)
于 2024-02-08 01:49:19 首次发布