225. Implement Stack using Queues
来源:互联网 发布:涵洞计算软件 编辑:程序博客网 时间:2024/05/02 07:26
题目
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 back, peek/pop from front, size, 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).
思路
栈的相关实现
代码
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(q1.empty()) { transElement(2); q2.pop(); } else { transElement(1); q1.pop(); } } // Get the top element. int top() { int result; if(q1.empty()) { //q2转q1 transElement(2); result = q2.front(); q1.push(q2.front()); q2.pop(); } else { transElement(1); result = q1.front(); q2.push(q1.front()); q1.pop(); } return result; } // Return whether the stack is empty. bool empty() { return q1.empty() && q2.empty(); } //1为q1->q2,2为q2->q1 void transElement(int num) { if(num == 1) { while(q1.size() > 1) { q2.push(q1.front()); q1.pop(); } } else { while(q2.size() > 1) { q1.push(q2.front()); q2.pop(); } } }};
0 0
- 225.Implement Stack using Queues
- 225. Implement Stack using Queues
- 225. Implement Stack using Queues
- 225. Implement Stack using Queues
- 225. Implement Stack using Queues
- 225. Implement Stack using Queues
- 225. Implement Stack using Queues
- 225. Implement Stack using Queues
- 225. Implement Stack using Queues
- 225. Implement Stack using Queues
- 225. Implement Stack using Queues
- 225. Implement Stack using Queues
- 225. Implement Stack using Queues
- 225. Implement Stack using Queues
- 225. Implement Stack using Queues
- 225. Implement Stack using Queues
- 225. Implement Stack using Queues
- 225. Implement Stack using Queues
- keras gpu配置
- MyBatis快速入门(四) MyBatis和Spring集成
- Spring Boot学习笔记-项目属性的简单配置
- Session 跟 Cookie
- [Leetcode] 506. Relative Ranks
- 225. Implement Stack using Queues
- 1014. Circles of Friends (35)
- getRunningTasks和getRunningAppProcesses失效
- 实验吧—我喜欢培根
- [LeetCode] 463. Island Perimeter 解题报告
- 八大排序算法
- 安卓ADT离线安装
- 数据结构(线性结构习题)Problem A: 求集合的交并补集
- linux下实时查看tomcat运行日志