【刷题日记】栈和队列-用队列实现栈-L225-Easy Chen Shi 刷题日记栈和队列 刷题日记 栈和队列 发布于:2024年8月16日 字数:257 字 时长:1 分钟 请你仅使用两个队列实现一个后入先出(LIFO)的栈,并支持普通栈的全部四种操作(push、top、pop 和 empty)。 思路 用一个队列,将队头元素弹出并重新加入队尾,并用 count 计数,当队头元素为最后一个元素时,弹出。 学习点 代码 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263class MyStack {private: queue<int> inQ;public: MyStack() { } void push(int x) { inQ.push(x); } int pop() { auto inQ_size = inQ.size(); // 返回最后一个元素 int ele_cnt = 0; while (ele_cnt != inQ_size - 1) { inQ.push(inQ.front()); inQ.pop(); ele_cnt += 1; } // 此时队头元素为要 pop 的元素 auto res = inQ.front(); inQ.pop(); return res; } int top() { auto inQ_size = inQ.size(); // 返回最后一个元素 int ele_cnt = 0; while (ele_cnt != inQ_size - 1) { inQ.push(inQ.front()); inQ.pop(); ele_cnt += 1; } // 此时队头元素为要 pop 的元素 auto res = inQ.front(); inQ.push(inQ.front()); inQ.pop(); return res; } bool empty() { return inQ.empty(); }};/** * Your MyStack object will be instantiated and called as such: * MyStack* obj = new MyStack(); * obj->push(x); * int param_2 = obj->pop(); * int param_3 = obj->top(); * bool param_4 = obj->empty(); */ 最后更新于:2025年1月18日 C++ 刷题 栈和队列 C++ 刷题 栈和队列 【刷题日记】栈和队列-有效括号-L20-Easy 给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效。 思路 用栈暂存左括号;用 map 键值对存储左括号和右括号的对应关... 【刷题日记】栈和队列-用栈实现队列-L232-Easy 请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(push、pop、peek、empty): 思路 两个栈,互相倒腾。 学习点 栈和队列的特性。 代码 12345...