leetcode 225. 用队列实现栈

2023.6.19

leetcode 225. 用队列实现栈_第1张图片

        这题使用队列来实现栈的功能,和栈实现队列稍有不同。pop操作的实现 需要将队列1的除队尾元素之外的所有元素移到队列2中,然后返回并移除队列1剩下的元素。

        下面上代码:

class MyStack {
    queue que1;
    queue que2;
public:
    MyStack() {}
    
    void push(int x) {
        que1.push(x);
    }
    
    int pop() {
        int size = que1.size()-1;
        while(size)
        {
            que2.push(que1.front());
            que1.pop();
            size--;
        }
        int result = que1.front();
        que1.pop();
        que1 = que2;
        while(!que2.empty()) que2.pop();
        return result;
    }
    
    int top() {
        // int size = que1.size()-1;
        // while(size)
        // {
        //     que2.push(que1.front());
        //     que1.pop();
        //     size--;
        // }
        // int result = que1.front();
        // que2.push(que1.front());
        // que1 = que2;
        // while(!que2.empty()) que2.pop();
        // return result;
        return que1.back();
    }
    
    bool empty() {
        return que1.empty();
    }
};

         ps:实现top操作时,可以直接使用队列的内置方法back直接查看队尾的元素。

你可能感兴趣的:(leetcode专栏,c++,数据结构,leetcode,算法)