关闭

Implement Queue using Stacks

178人阅读 评论(0) 收藏 举报
分类:

解决问题的思路:用两个栈,其中一个栈只是用来作缓存,每次操作结束都为空栈。

代码如下:

class Queue {
private:
    stack<int> stack1;
    stack<int> buf;
public:
    // Push element x to the back of queue.
    void push(int x) {
        for(; !stack1.empty(); ) {
            buf.push(stack1.top());
            stack1.pop();
        }
        stack1.push(x);
        for(; !buf.empty(); ) {
            stack1.push(buf.top());
            buf.pop();
        }

    }

    // Removes the element from in front of queue.
    void pop(void) {
        stack1.pop();
    }

    // Get the front element.
    int peek(void) {
        return stack1.top();
    }

    // Return whether the queue is empty.
    bool empty(void) {
        return stack1.empty();
    }
};
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:48313次
    • 积分:2305
    • 等级:
    • 排名:第16815名
    • 原创:190篇
    • 转载:5篇
    • 译文:0篇
    • 评论:1条
    文章分类
    最新评论