用队列实现栈

请你仅使用两个队列实现一个后入先出(LIFO)的栈,并支持普通栈的全部四种操作(pushtoppopempty)。

实现 MyStack 类:

  • void push(int x) 将元素 x 压入栈顶。
  • int pop() 移除并返回栈顶元素。
  • int top() 返回栈顶元素。
  • boolean empty() 如果栈是空的,返回 true ;否则,返回 false

思路:每次push,都做一遍出队入队操作,确保 刚push进的数位于队头。

python 复制代码
class MyStack:

    def __init__(self):
        self.queue=deque()

    def push(self, x: int) -> None:
        n=len(self.queue)
        self.queue.append(x)
        for _ in range(n):
            self.queue.append(self.queue.popleft())

    def pop(self) -> int:
        return self.queue.popleft()

    def top(self) -> int:
        return self.queue[0]
    def empty(self) -> bool:
        return len(self.queue) == 0
相关推荐
KWTXX20 小时前
使用matlab官网的skills调用claude-待完成
开发语言·matlab
aini_lovee20 小时前
MATLAB 图像修复 — 偏微分方程方法
算法
Cthy_hy20 小时前
Python算法竞赛:排列组合核心用法
开发语言·python·算法
大圣编程20 小时前
面向对象深度理解
java·开发语言·算法
爱喝水的鱼丶20 小时前
SAP-ABAP:SAP 简单报表输出开发系列(共6篇) 第四篇:SAP 报表异常处理机制:数据校验与消息提示规范落地
开发语言·数据库·学习·算法·sap·abap
影寂ldy20 小时前
C# const 常量 / readonly 只读 / static readonly
java·开发语言·c#
C+-C资深大佬21 小时前
在PyCharm中创建虚拟环境的具体步骤是什么?
ide·python·pycharm
wabs66621 小时前
关于贪心算法【划分字母区间】的问题总结(C++语法)
算法·贪心算法
iCxhust21 小时前
c#多串口重量采集上位机程序
开发语言·汇编·c#·微机原理·8088单板机