[leetcode] Implement Stack using Queues
来源:互联网 发布:大学生找不到工作数据 编辑:程序博客网 时间:2024/05/19 12:17
From : https://leetcode.com/problems/implement-stack-using-queues/
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.
- You must use only standard operations of a queue -- which means only
push to back
,peek/pop from front
,size
, andis 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).
class Stack { queue<int> q1; queue<int> q2;public: // Push element x onto stack. void push(int x) { if(q1.empty()) q2.push(x); else q1.push(x); } // Removes the element on top of the stack. void pop() { if(empty()) return; if(q1.empty()) swapQueue(); while(true) { int x = q1.front(); q1.pop(); if(q1.empty()) return; q2.push(x); } } // Get the top element. int top() { if(empty()) return 0; if(q1.empty()) swapQueue(); while(true) { int x = q1.front(); q1.pop(); q2.push(x); if(q1.empty()) return x; } } // Return whether the stack is empty. bool empty() { return q1.empty() && q2.empty(); } void swapQueue() { queue<int> t = q1; q1 = q2; q2 = t; }};
class Stack { queue<int> q; int size=0;public: // Push element x onto stack. void push(int x) { q.push(x); size++; } // Removes the element on top of the stack. void pop() { if(size==0) return; for(int i=1; i<size; i++) { int x = q.front(); q.pop(); q.push(x); }q.pop(); size--; } // Get the top element. int top() { if(size==0) return 0; for(int i=1; i<size; i++) { int x = q.front(); q.pop(); q.push(x); } int x = q.front(); q.pop();q.push(x); return x; } // Return whether the stack is empty. bool empty() { return q.empty(); }};
0 0
- [LeetCode]Implement Stack using Queues
- [LeetCode] Implement Stack using Queues
- [leetcode] Implement Stack using Queues
- LeetCode Implement Stack using Queues
- #leetcode#Implement Stack using Queues
- Leetcode: Implement Stack using Queues
- [LeetCode] Implement Stack using Queues
- [Leetcode]Implement Stack using Queues
- leetcode--Implement Stack using Queues
- LeetCode Implement Stack using Queues
- LeetCode || Implement Stack using Queues
- Leetcode Implement Stack using Queues
- LeetCode Implement Stack using Queues
- [leetcode] Implement Stack using Queues
- Leetcode: Implement Stack using Queues
- LeetCode-Implement Stack using Queues
- LeetCode Implement Stack using Queues
- Leetcode: Implement Stack using Queues
- Raspberry Pi(树莓派)国内软件源
- 日经春秋 20150612
- Installation error: INSTALL_PARSE_FAILED_MANIFEST_MALFORMED
- eclipse打开当前文件所在文件夹的两种方法
- SQL 笔记
- [leetcode] Implement Stack using Queues
- 《大话设计模式》--想走?可以!先买票--迭代器模式<Iterator>(20)
- 页面跳转两种方式
- 出现set_locale() failed (5): Input/output error的解决方法
- Spring官网下载dist.zip的几种方法
- 栈溢出崩溃排查(二)
- Images.xcassets
- postgresql表分区
- android 常用系统修改和设置