面试题 03.04:化栈为队

简介: 面试题 03.04:化栈为队

题目

题目链接

实现一个MyQueue类,该类用两个栈来实现一个队列

示例:

MyQueue queue = new MyQueue();
queue.push(1);
queue.push(2);
queue.peek();  // 返回 1
queue.pop();   // 返回 1
queue.empty(); // 返回 false

解题

leetcode-232:用栈实现队列是一样的

方法一:

class MyQueue {
private:
    stack<int> st1;
    stack<int> st2;
public:
    /** Initialize your data structure here. */
    MyQueue() {
    }
    /** Push element x to the back of queue. */
    void push(int x) {
        while(!st1.empty()){
            st2.push(st1.top());
            st1.pop();
        }
        st1.push(x);
        while(!st2.empty()){
            st1.push(st2.top());
            st2.pop();
        }
    }
    /** Removes the element from in front of queue and returns that element. */
    int pop() {
        int res=st1.top();
        st1.pop();
        return res;
    }
    /** Get the front element. */
    int peek() {
        return st1.top();
    }
    /** Returns whether the queue is empty. */
    bool empty() {
        return st1.empty();
    }
};
相关文章
|
5月前
|
存储 Java 编译器
【面试知识】Java内存分配之常量池、堆、栈
【面试知识】Java内存分配之常量池、堆、栈
|
6月前
|
缓存 网络协议 Linux
手把手实现tcp/ip用户态协议栈,帮你实践网络知识(网络必备,面试项目)
手把手实现tcp/ip用户态协议栈,帮你实践网络知识(网络必备,面试项目)
|
7月前
【栈和队列面试题】用栈实现队列(动图解析更清晰)
【栈和队列面试题】用栈实现队列(动图解析更清晰)
|
7月前
|
存储
【栈与队列面试题】用队列实现栈(动图演示)
【栈与队列面试题】用队列实现栈(动图演示)
|
7月前
|
存储
【栈与队列面试题】有效的括号(动图演示)
【栈与队列面试题】有效的括号(动图演示)
|
5月前
|
算法 容器
【算法训练营】队列合集(2) 2073. 买票需要的时间 || 面试题 03.04. 化栈为队 ||
【算法训练营】队列合集(2) 2073. 买票需要的时间 || 面试题 03.04. 化栈为队 ||
62 0
|
7月前
|
存储 Java 调度
Java 最常见的面试题:队列和栈是什么?有什么区别?
Java 最常见的面试题:队列和栈是什么?有什么区别?
|
3月前
|
存储 算法 调度
【数据结构入门精讲 | 第五篇】栈知识点及考研408、企业面试练习
【数据结构入门精讲 | 第五篇】栈知识点及考研408、企业面试练习
37 0
|
4月前
|
设计模式 消息中间件 Java
面试官:什么是JIT、逃逸分析、锁消除、栈上分配和标量替换?
面试官:什么是JIT、逃逸分析、锁消除、栈上分配和标量替换?
537 1
|
4月前
|
存储 程序员 C++
面试题:C++堆和栈的区别?
面试题:C++堆和栈的区别?
25 0