用两个栈实现队列

1.用两个栈实现队列

java 复制代码
import java.util.*;

public class Solution {
    // 入队栈:负责接收新元素
    private Stack<Integer> stackIn = new Stack<>();
    // 出队栈:负责弹出元素
    private Stack<Integer> stackOut = new Stack<>();

    // 入队操作:直接压入入队栈
    public void push(int node) {
        stackIn.push(node);
    }

    // 出队操作:保证先进先出
    public int pop() {
        // 出队栈为空时,将入队栈所有元素转移到出队栈
        if (stackOut.isEmpty()) {
            while (!stackIn.isEmpty()) {
                stackOut.push(stackIn.pop());
            }
        }
        // 弹出出队栈栈顶(队列队头)
        return stackOut.pop();
    }

    public static void main(String[] args) {
        Solution queue = new Solution();
        Scanner sc = new Scanner(System.in);
        // 读取操作序列
        String[] ops = sc.nextLine().split(",");
        List<Integer> res = new ArrayList<>();

        for (String op : ops) {
            if (op.startsWith("PSH")) {
                // 入队操作:提取数字
                int num = Integer.parseInt(op.substring(3));
                queue.push(num);
            } else if (op.equals("POP")) {
                // 出队操作:记录结果
                res.add(queue.pop());
            }
        }

        // 输出结果,用逗号分隔
        for (int i = 0; i < res.size(); i++) {
            if (i > 0) System.out.print(",");
            System.out.print(res.get(i));
        }
    }
}
相关推荐
zhanghaha13142 小时前
HTML系列教程:14_HTML 表单与输入框 <form>、<input> 零基础详解
java·前端·javascript
傻啦嘿哟7 小时前
某招聘平台爬虫:爬取招聘岗位数据,分析各城市薪资水平
开发语言·爬虫·python
2501_933670797 小时前
2026秋招量化分析岗技能栈:Python、SQL、统计建模、回测项目怎么准备
开发语言·python·sql
yxlalm8 小时前
Spring AI+RAG 01-项目背景与技术选型
java·人工智能·spring
程序员清风8 小时前
Java 后端高并发设计:线程池、限流、熔断与降级
java·数据库·oracle
李少兄8 小时前
JavaScript 数据类型完全指南
开发语言·javascript·ecmascript
Seoyoneh9 小时前
Agentic Workflow编排架构:云客服从“被动响应”迈向“主动执行”的技术实现
java·开发语言·架构
海南java第二人9 小时前
对外 API 如何保证幂等性?插入数据 / 上传表格场景全方案汇总
java·幂等性
tryxr9 小时前
Chat2Excel 文件服务模块上传文件功能开发
java·项目·oss·easyexcel·文件服务
Tangyuewei9 小时前
Java 写 Agent:模型只是组件
java·开发语言