基本特性:先进后出,离栈顶越近,越先出。
栈类,需要实现如下功能:
- push(item):将一个元素添加到顶端,需要1个参数item,无返回值
- pop():将栈顶元素移除,并返回移除的元素
- peek():返回栈顶元素,不移除(看一眼)
- isEmpty():检查栈是否为空。为空则返回True,否则返回False
- size():返回栈中的元素个数,返回1个整数。
代码实现如下:
class Stack:
def __init__(self):
"""
初始化栈对象。
"""
# 创建私有属性items,用于存储栈内元素,初始化为空列表
self._items = []
def is_empty(self):
"""
检查栈是否为空。
返回值:
bool: 如果栈为空,则返回True;否则返回False。
"""
# 注意bool方法的使用,当列表、元组等容器为空时,返回False
# 非空返回True
return not bool(self._items)
def push(self, item):
"""
将元素压入栈顶。
参数:
item: 需要被压入栈的元素。
"""
# 将元素添加到列表末尾,实现压栈操作
self._items.append(item)
def pop(self):
"""
弹出栈顶元素。
返回值:
该方法返回栈顶元素,并将其从栈中移除。
"""
return self._items.pop()
def peek(self):
"""
获取栈顶元素,不移除。
返回值:
栈顶元素。
"""
# 返回列表的最后一个元素,即栈顶元素
return self._items[-1]
def size(self):
"""
获取栈内元素个数。
返回值:
int: 栈内元素的数量。
"""
# 返回列表的长度,即栈内元素个数
return len(self._items)