- 栈的基本概念(空栈、栈顶、栈底)和特点(先入后出)
Python 语言确实支持栈数据结构,但它通常是通过列表来模拟实现的。
- 获取栈的长度,即栈中元素的数量,这通过
len()
获取列表的长度来实现。 - 进栈操作,将新的元素放入到栈中,新的元素成为栈顶元素,栈顶元素即最后一个元素,这通过
append()
操作将新的元素添加到列表中就可以实现。 - 出栈操作,栈顶元素 (列表的最后一个元素) 从栈中离开,可以通过
pop()
移除列表的最后一个元素。 - 获取栈顶元素:获取列表的最后一位元素即可,可以通过索引
list[-1]
获取。 - 判断栈是否为空:可以通过
if not stack
来判定。
stack = [] #创建一个新列表
#入栈
stack.append(1)
stack.append(2)
stack.append(3)
#出栈
top_element = stack.pop() #弹出并返回栈顶元素
print(top_element) #输出3
#判读是否栈空
if not stack:
# 读取初始盘子数量
n = int(input())
plates = list(map(int, input().split()))
stack = []
# 读取盘子的编号列表
for element in plates:
stack.append(element)
# 读取操作次数
m = int(input())
# 循环处理每次操作
for _ in range(m):
ope = input().split()
if int(ope[0]) == 1:
# 操作 1: 拿走并清洗盘子
if stack:
top_element = stack.pop()
else:
continue
# 操作 2: 将未洗的盘子放入盘子堆放区
elif int(ope[0]) == 2:
stack.append(int(ope[1]))
# 判断盘子堆放区是否为空
if not stack:
print("All the dishes have been washed.")
else:
print(stack.pop())