首页 > 其他 > 详细

LeetCode Implement Stack using Queues

时间:2016-03-30 01:24:14      阅读:143      评论:0      收藏:0      [点我收藏+]

Implement the following operations of a stack using queues.

   push(x) -- Push element x onto stack.

   pop() -- Removes the element on top of the stack.

   top() -- Get the top element.

   empty() -- Return whether the stack is empty.

Notes

   You must use only standard operations of a queue -- which means only push to backpeek/pop from frontsize, and is empty operations are valid.

   Depending on your language, queue may not be supported natively. You may simulate a queue by using a list or deque (double-ended queue), as long as you use only standard operations of a queue.

   You may assume that all operations are valid (for example, no pop or top operations will be called on an empty stack). 

题目的意思是让我们用队列的基本操作来完成栈的操作,你可以再借助一个队列或者双向链表。

  你能使用的队列的方法只有push,pop(这个方法在队列中是从队头去除元素,而不是队尾),peek(在C++中是front方法),size和empty

很简单的题目,学过数据结构的应该都能实现

class Stack {
public:
    queue<int> que1, que2;
    // Push element x onto stack.
    void push(int x) {
        que1.push(x);
    }

    // Removes the element on top of the stack.
    void pop() {
        int i = 1,elem=0;
        while (i<que1.size())
        {
            elem = que1.front();
            que2.push(elem);
            que1.pop();
        }
        que1.pop();
        while (!que2.empty())
        {
            elem = que2.front();
            que1.push(elem);
            que2.pop();
        }
    }

    // Get the top element.
    int top() {
        int i = 1, elem = 0;
        while (i<que1.size())
        {
            elem = que1.front();
            que2.push(elem);
            que1.pop();
        }
        i = que1.front();
        que2.push(i);
        que1.pop();
        while (!que2.empty())
        {
            elem = que2.front();
            que1.push(elem);
            que2.pop();
        }
        return i;
    }

    // Return whether the stack is empty.
    bool empty() {
        return que1.empty();
    }
};

 

LeetCode Implement Stack using Queues

原文:http://www.cnblogs.com/csudanli/p/5335509.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!