使用Python实现一个堆栈结构

在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())  # 输出 3
print(s.pop())   # 输出 3
print(s.pop())   # 输出 2
print(s.size())  # 输出 1
在上述代码中,首先创建了一个 Stack 对象,然后依次将元素 1、2、3 压入栈中。接着使用 peek() 方法获取栈顶元素,使用 pop() 方法弹出栈顶元素,并使用 size() 方法获取栈的元素个数