Python | 洗盘子(栈)

  • 栈的基本概念(空栈、栈顶、栈底)和特点(先入后出)

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())

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值