使用 Python 实现一个简单的栈(Stack)类

使用 Python 实现一个简单的栈(Stack)类
Python3 实例
栈(Stack)是一种遵循后进先出(LIFO)原则的数据结构。我们可以使用 Python 的列表来实现一个简单的栈类。这个类将包含以下几个基本操作:
push(item):将元素 item 压入栈顶。
pop():移除并返回栈顶的元素。
peek():返回栈顶的元素但不移除它。
is_empty():检查栈是否为空。
size():返回栈中元素的数量。
实例
class Stack:
def __init__(self):
self.items = []
def is_empty(self):
return self.items == []
def push(self, item):
self.items.append(item)
def pop(self):
if self.is_empty():
raise IndexError("pop from empty stack")
return self.items.pop()
def peek(self):
if self.is_empty():
raise IndexError("peek from empty stack")
return self.items[-1]
def size(self):
return len(self.items)
代码解析:
__init__(self):初始化一个空列表 items 来存储栈中的元素。
is_empty(self):检查栈是否为空,如果 items 列表为空则返回 True,否则返回 False。
push(self, item):将元素 item 添加到 items 列表的末尾,即压入栈顶。
pop(self):移除并返回 items 列表的最后一个元素,即栈顶元素。如果栈为空,则抛出 IndexError 异常。
peek(self):返回 items 列表的最后一个元素,即栈顶元素,但不移除它。如果栈为空,则抛出 IndexError 异常。
size(self):返回 items 列表的长度,即栈中元素的数量。
输出结果:
实例
# 示例使用
stack = Stack()
stack.push(1)
stack.push(2)
stack.push(3)
print(stack.peek()) # 输出: 3
print(stack.pop()) # 输出: 3
print(stack.size()) # 输出: 2
print(stack.is_empty()) # 输出: False
stack.pop()
stack.pop()
print(stack.is_empty()) # 输出: True
在这个示例中,我们首先创建了一个栈对象 stack,然后依次将元素 1、2 和 3 压入栈中。接着我们查看了栈顶元素(3),并移除了它。最后我们检查了栈的大小和是否为空。
Python3 实例