栈和队列的实现

用栈实现队列

1.分析

2.代码

java 复制代码
class MyQueue {
      private Stack<Integer> s1;
      private Stack<Integer> s2;
    public MyQueue() {
      s1 = new Stack<>();
      s2 = new Stack<>();
    }
    
    public void push(int x) {
        s1.push(x);
    }
    
    public int pop() {
        if(empty()){
            return -1;
        }
        if(s2.empty()){
            while(!s1.empty()){
                s2.push(s1.pop());
            }
        }
       return s2.pop();
    }
    
    public int peek() {
         if(empty()){
            return -1;
        }
        if(s2.empty()){
            while(!s1.empty()){
                s2.push(s1.pop());
            }
        }
        return s2.peek();
    }
    
    public boolean empty() {
     return s1.empty()&&s2.empty();
    }
}

/**
 * Your MyQueue object will be instantiated and called as such:
 * MyQueue obj = new MyQueue();
 * obj.push(x);
 * int param_2 = obj.pop();
 * int param_3 = obj.peek();
 * boolean param_4 = obj.empty();
 */
相关推荐
qystca5 分钟前
洛谷 P11242 碧树 C语言
数据结构·算法
IT女孩儿12 分钟前
JavaScript--WebAPI查缺补漏(二)
开发语言·前端·javascript·html·ecmascript
冠位观测者12 分钟前
【Leetcode 热题 100】124. 二叉树中的最大路径和
数据结构·算法·leetcode
m0_7482389212 分钟前
webgis入门实战案例——智慧校园
开发语言·ios·swift
XWXnb615 分钟前
数据结构:链表
数据结构·链表
悲伤小伞17 分钟前
C++_数据结构_详解二叉搜索树
c语言·数据结构·c++·笔记·算法
醒了就刷牙18 分钟前
黑马Java面试教程_P9_MySQL
java·mysql·面试
m0_7482336424 分钟前
SQL数组常用函数记录(Map篇)
java·数据库·sql
Clockwiseee26 分钟前
PHP伪协议总结
android·开发语言·php
小灰灰搞电子27 分钟前
Qt实现Android的图案密码(图形解锁)源码分享
开发语言·qt