[jobdu]用两个栈实现队列
2024-08-26 19:39:23
思路比较简单。就是当要pop的时候,如果s2为空,才把s1的转过来。总之就是区分一下此时s2为空和非空的情况。 http://ac.jobdu.com/problem.php?pid=1512
#include <cstring>
#include <cstdio>
#include <stack>
using namespace std; class Queue {
public:
void push(int val) {
s1.push(val);
}
int pop() {
if (s2.empty())
{
while(!s1.empty())
{
int tmp = s1.top();
s1.pop();
s2.push(tmp);
}
}
if (!s2.empty()) {
int tmp = s2.top();
s2.pop();
return tmp;
}
else {
return -1;
}
}
private:
stack<int> s1, s2;
}; int main() {
Queue Q;
int n; scanf("%d", &n);
char flag[20]; int val;
for (int i=0; i<n; ++i) {
scanf("%s", flag);
if (strcmp("PUSH", flag) == 0) {
scanf("%d", &val);
Q.push(val);
} else if (strcmp("POP", flag) == 0) {
printf("%d\n", Q.pop());
}
}
return 0;
}
最新文章
- iOS学习笔记——滚动视图(scrollView)
- Java多线程 3 线程同步
- Laravel的生命周期
- 企业架构(Enterprise Architecture)
- 游戏服务器端引擎--DogSE的设计
- 【转】oracle connect by用法
- 1.5.3 什么是Tokenizer-分词
- VS2015环境下Crystal Reports(水晶报表)的安装使用
- HDU 5039 Hilarity
- FZU 2129 子序列个数
- HDU 3289 Cat VS Dog (二分匹配 求 最大独立集)
- 【UIView与控件】
- Zencart批量删除无图片产品
- 设置自己Eclipse代码风格(内部)
- Asp.Net Core 轻松学-在.Net Core 使用缓存和配置依赖策略
- [转]快速新建简单的koa2后端服务
- BZOJ3709 Bohater 贪心
- python 3 爬取某小说网站小说,注释详细
- [android] activity横竖屏切换的生命周期
- Nginx详解十二:Nginx场景实践篇之跨站访问相关
热门文章
- 支持状态对象复用的RPC框架——SnakeRPC
- ASP.NET5/MVC6 下生成Helppage
- 20160531-20160607springmvc入门
- Flume负载均衡配置
- 项目开发中常用到的SQL语句
- Hibernate+struts+JqueryAjax+jSON实现无刷新三级联动
- linux启动报错:kernel panic - not attempted to kill init
- ### C++总结-[类成员函数]
- WPF的TextBox的焦点获取与失去焦点的死循环解决方案
- [.Net MVC] 使用 log4net 日志框架