题目1522:包含min函数的栈
2016-04-19 17:21
435 查看
两个栈:
(1)一个栈就是正常的对数据进栈、出栈。
(2)另一个每次入栈时判断当前值与栈顶值的大小。如果当前值小,那么当前值入栈,否则栈顶对应的值入栈。
(1)一个栈就是正常的对数据进栈、出栈。
(2)另一个每次入栈时判断当前值与栈顶值的大小。如果当前值小,那么当前值入栈,否则栈顶对应的值入栈。
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <limits.h> #include <stack> using namespace std; int main(){ int n,num,i,len=0; char opt[2]; stack <int> s; stack <int> s_min; //最小的数 while(scanf("%d",&n)!=EOF){ len = 0; for(i=0;i<n;i++){ scanf("%s",opt); if(opt[0]=='s'){ //输入为s时,此时入栈 scanf("%d",&num); if(s_min.empty()||s_min.top()>num){ s.push(num); s_min.push(num); }else{ s.push(num); s_min.push(s_min.top() ); } } else{ //输入为o时,此时出栈 if(!s.empty()){ s.pop(); s_min.pop(); } } if(!s_min.empty()){ printf("%d\n",s_min.top() ); } else{ printf("NULL\n"); } } } //system("pause"); return 0; }
相关文章推荐
- 80. Remove Duplicates from Sorted Array II
- 武校学生
- 第八周项目1—数组做数据成员(工资类、数组)
- UIScrollView contentInset contentOffset contentSize 详解
- jsp页面技术混合
- AndroidのActivity启动模式
- 一些小经验
- 1-6-02:陶陶摘苹果
- 结合源码探讨Android系统的启动流程
- Leetcode - Maximum Depth of Binary Tree
- 单实例 oracle 自启动
- setOnPageChangeListener 过时了怎么办?
- org.jasig.cas.client.session.SingleSignOutHttpSessionListener
- 反射应用之用类加载器的方式管理资源和配置文件
- 表操作
- 数据一致性-分区可用性-性能——多副本强同步数据库系统实现之我见
- ZZULIOJ 1881: 蛤玮的机房【并查集】
- iOS应用上线
- Hinbernate ManyToMany JPA注解
- Elasticsearch初步使用(安装、Head配置、分词器配置)