在Python中,你可以使用列表(list)来模拟栈的行为。下面是一个简单的栈实现,包括压栈(push)、弹栈(pop)、查看栈顶元素(peek)、判断栈是否为空(is_empty)以及获取栈的大小(size)等操作:
class Stack(object):
def __init__(self):
self.items = [] 初始化栈为空列表
def is_empty(self):
return self.items == [] 判断栈是否为空
def peek(self):
return self.items[-1] if not self.is_empty() else None 返回栈顶元素
def size(self):
return len(self.items) 返回栈的大小
def push(self, item):
self.items.append(item) 把新的元素堆进栈里面
def pop(self):
return self.items.pop() if not self.is_empty() else None 把栈顶元素丢出去
使用示例
if __name__ == "__main__":
my_stack = Stack()
my_stack.push('h')
my_stack.push('a')
print(my_stack.size()) 输出:2
print(my_stack.peek()) 输出:'a'
print(my_stack.pop()) 输出:'a'
print(my_stack.is_empty()) 输出:False
这个栈实现使用了Python的内建`list`数据结构,通过`append`方法实现压栈,通过`pop`方法实现弹栈。`peek`方法返回栈顶元素但不移除它,`is_empty`方法检查栈是否为空,`size`方法返回栈中元素的数量。