首页 > 其他分享 >225. Implement Stack using Queues

225. Implement Stack using Queues

时间:2024-07-26 11:26:45浏览次数:18  
标签:Queues pop stack queue push using 225 top empty

Implement a last-in-first-out (LIFO) stack using only two queues. The implemented stack should support all the functions of a normal stack (push, top, pop, and empty).

Implement the MyStack class:

  • void push(int x) Pushes element x to the top of the stack.
  • int pop() Removes the element on the top of the stack and returns it.
  • int top() Returns the element on the top of the stack.
  • boolean empty() Returns true if the stack is empty, false otherwise.

Notes:

  • You must use only standard operations of a queue, which means that only push to back, peek/pop from front, size and is empty operations are valid.
  • Depending on your language, the queue may not be supported natively. You may simulate a queue using a list or deque (double-ended queue) as long as you use only a queue's standard operations.

Example 1:

Input
["MyStack", "push", "push", "top", "pop", "empty"]
[[], [1], [2], [], [], []]
Output
[null, null, null, 2, 2, false]

Explanation
MyStack myStack = new MyStack();
myStack.push(1);
myStack.push(2);
myStack.top(); // return 2
myStack.pop(); // return 2
myStack.empty(); // return False

Constraints:

  • 1 <= x <= 9
  • At most 100 calls will be made to push, pop, top, and empty.
  • All the calls to pop and top are valid.

Follow-up: Can you implement the stack using only one queue?

class MyStack {
public:
    queue<int>queue;

    MyStack() {

    }
    
    void push(int x) {
        queue.push(x);
    }
    
    int pop() {
        int size=queue.size();
        size--;
        while(size--){
            queue.push(queue.front());
            queue.pop();
        }
        int result=queue.front();
        queue.pop();
        return result;
    }
    
    int top() {
        return queue.back();
    }
    
    bool empty() {
        return queue.empty();
    }
};

注意:

        1.两个队列也是可以的,但是一个queue显得更简洁,而且也很好理解

        2.pop的时候,记住size要先-1

        3.top是指队列最后进去的那个元素,使用的是back,不是front

标签:Queues,pop,stack,queue,push,using,225,top,empty
From: https://blog.csdn.net/2301_80161204/article/details/140710910

相关文章