本章学习的是栈.它最突出的特点是后进先出,与队列恰好相反,但其在实现过程中与队列异曲同工.
栈的基本结构:
栈是按照有序的后进先出规则运行的一种结构,其插入和删除操作均在栈项进行这一点区别于队列的队尾进队,队头出队.
栈一般包括入栈和出栈操作,且有一个顶指针(top)用于指示栈项位置.
栈的实现:
使用python实现栈,包括如下几种方法.
__init__():初始化方法,用于创建一个空栈
__len__():返回栈的长度
isempty():返回栈是否为空
push():向栈压入一个元素.
gettop():获取栈顶元素
pop():执行一次出栈操作,返回弹出的元素值
示例代码如下:
class Stack:def __init__(self):# 创建空栈# 初始化一个空列表来存储栈中的元素self.data = []def __len__(self):# 返回栈中元素的数量# 这是内置的len函数的自定义实现,允许使用len(stack)来获取栈的大小return len(self.data)def isempty(self):# 检查栈是否为空# 如果栈中没有元素,返回True,否则返回Falsereturn len(self.data) == 0def push(self, d):# 向栈中添加一个元素# 将元素d添加到列表的末尾,这模拟了栈的入栈操作self.data.append(d)def gettop(self):# 获取栈顶元素# 如果栈为空,返回提示信息'Stack is empty'# 否则返回列表的最后一个元素,即栈顶元素if self.isempty():return 'Stack is empty'return self.data[-1]def pop(self):# 移除栈顶元素并返回它# 如果栈为空,返回提示信息'Stack is empty'# 否则移除并返回列表的最后一个元素,即栈顶元素if self.isempty():return 'Stack is empty'return self.data.pop()