使用两个栈模拟队列

一个栈负责写入,一个栈负责读出。

当写入时把读出栈的数据依次弹出并压入写入栈,读出时同理。

C++代码如下:

class Solution
{
public:
    void push(int node) {
        while (!stack2.empty()) {
            stack1.push(stack2.top());
            stack2.pop();
        }
        stack1.push(node);
    }
    
    int pop() {
        int result;
        while (!stack1.empty()) {
            stack2.push(stack1.top());
            stack1.pop();
        }
        result = stack2.top();
        stack2.pop();
        return result;
    }
    
private:
    stack<int> stack1;
    stack<int> stack2;
};
标签: none
返回文章列表 文章二维码
本页链接的二维码
打赏二维码
添加新评论