在Python中,可以使用列表(list)来实现堆栈结构,因为列表具有添加、删除、查找等操作,非常适合用来实现堆栈。下面是一个简单的堆栈实现:
class Stack:
def __init__(self):
self.items = []
def is_empty(self):
return len(self.items) == 0
def push(self, item):
self.items.append(item)
def pop(self):
if self.is_empty():
raise Exception("Stack is empty")
return self.items.pop()
def peek(self):
if self.is_empty():
raise Exception("Stack is empty")
return self.items[-1]
def size(self):
return len(self.items)
上面的代码定义了一个 Stack 类,包含以下几个方法:
__init__()
: 初始化方法,创建一个空的列表作为栈的存储结构。is_empty()
: 判断栈是否为空,如果栈的存储列表为空,则返回 True,否则返回 False。push(item)
: 将元素 item 压入栈中,即将元素添加到栈的存储列表的末尾。pop()
: 弹出栈顶元素并返回,即将栈的存储列表的末尾元素删除并返回。peek()
: 返回栈顶元素,但不弹出,即返回栈的存储列表的末尾元素。size()
: 返回栈的元素个数,即栈的存储列表的长度。
使用上述代码实现的堆栈结构,可以通过以下方式来使用:
s = Stack()
s.push(1)
s.push(2)
s.push(3)
print(s.peek())
print(s.pop())
print(s.pop())
print(s.size())
在上述代码中,首先创建了一个 Stack 对象,然后依次将元素 1、2、3 压入栈中。接着使用 peek() 方法获取栈顶元素,使用 pop() 方法弹出栈顶元素,并使用 size() 方法获取栈的元素个数