博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
栈练习1,2,3
阅读量:7069 次
发布时间:2019-06-28

本文共 4465 字,大约阅读时间需要 14 分钟。

时间限制: 1 s
 空间限制: 128000 KB
 题目等级 : 黄金 Gold
题目描述 
Description

给定一个栈(初始为空,元素类型为整数,且小于等于100),只有两个操作:入栈和出栈。先给出这些操作,请输出最终栈的栈顶元素。  操作解释:1表示入栈,2表示出栈

输入描述 
Input Description

N(操作个数)

N个操作(如果是入栈则后面还会有一个入栈元素)

具体见样例(输入保证栈空时不会出栈)

输出描述 
Output Description

最终栈顶元素,若最终栈空,输出”impossible!”(不含引号)

样例输入 
Sample Input

3

1 2

1 9

2

样例输出 
Sample Output

2

数据范围及提示 
Data Size & Hint

对于100%的数据  N≤1000 元素均为正整数且小于等于100

代碼實現:

手模

1 #include
2 #include
3 using namespace std; 4 int stack[100],top,n,b,em; 5 int main(){ 6 cin>>n; 7 for(int i=0;i
>b; 9 if(b==1){10 cin>>em;11 stack[top++]=em;12 }13 else top--;14 }15 if(!top) printf("impossible!\n");16 else cout<
<

STL

1 #include
2 #include
3 using namespace std; 4 stack
st; 5 int a,b,n; 6 int main(){ 7 cin>>n; 8 for(int i=1;i<=n;i++){ 9 cin>>a;10 if(a==1){11 cin>>b;12 st.push(b);13 }14 if(a==2){15 if(st.empty()){cout<<"impossible!";return 0;}16 st.pop();17 }18 }19 if(!st.empty()) cout<

时间限制: 1 s
 空间限制: 128000 KB
 题目等级 : 黄金 Gold
题目描述 
Description

(此题与栈练习1相比改了2处:1加强了数据 2不保证栈空时不会出栈)

给定一个栈(初始为空,元素类型为整数,且小于等于100),只有两个操作:入栈和出栈。先给出这些操作,请输出最终栈的栈顶元素。  操作解释:1表示入栈,2表示出栈

输入描述 
Input Description

N(操作个数)

N个操作(如果是入栈则后面还会有一个入栈元素)

具体见样例(输入不保证栈空时不会出栈)

输出描述 
Output Description

最终栈顶元素,若最终栈空,或栈空时有出栈操作,输出”impossible!”(不含引号)

样例输入 
Sample Input

3

1 2

2

2

样例输出 
Sample Output

impossible!

数据范围及提示 
Data Size & Hint

对于100%的数据  N≤100000 元素均为正整数且小于等于10^8

代碼實現:

手模

1 #include
2 #include
3 using namespace std; 4 int stack[100],top,n,b,em; 5 int main(){ 6 cin>>n; 7 for(int i=0;i
>b; 9 if(b==1){10 cin>>em;11 stack[top++]=em;12 }13 else{14 if(!top){printf("impossible!\n");return 0;}15 top--;16 }17 }18 if(!top) printf("impossible!\n");19 else cout<
<

STL

1 #include
2 #include
3 using namespace std; 4 stack
st; 5 int a,b,n; 6 int main(){ 7 cin>>n; 8 for(int i=1;i<=n;i++){ 9 cin>>a;10 if(a==1){11 cin>>b;12 st.push(b);13 }14 if(a==2){15 if(st.empty()){cout<<"impossible!";return 0;}16 st.pop();17 }18 }19 if(!st.empty()) cout<

 时间限制: 2 s
 空间限制: 128000 KB
 题目等级 : 黄金 Gold
题目描述 
Description

比起第一题,本题加了另外一个操作,访问栈顶元素(编号3,保证访问栈顶元素时或出栈时栈不为空),现在给出这N此操作,输出结果。

输入描述 
Input Description

N

N次操作(1入栈 2出栈 3访问栈顶)

输出描述 
Output Description

K行(K为输入中询问的个数)每次的结果

样例输入 
Sample Input

6

1  7

3

2

1  9

1  7

3

样例输出 
Sample Output

7

7

数据范围及提示 
Data Size & Hint

 对于50%的数据 N≤1000 入栈元素≤200

 对于100%的数据 N≤100000入栈元素均为正整数且小于等于10^4 

代碼實現:

手模

1 #include
2 #include
3 using namespace std; 4 int stack[100],top,n,b,em; 5 int main(){ 6 cin>>n; 7 for(int i=0;i
>b; 9 if(b==1){10 cin>>em;11 stack[top++]=em;12 }13 if(b==2){14 if(!top){printf("impossible!\n");return 0;}15 top--;16 }17 if(b==3) cout<
<

STL

1 #include
2 #include
3 using namespace std; 4 stack
s; 5 int n,a,b; 6 int main(){ 7 cin>>n; 8 while(n--){ 9 cin>>a;10 if(a==1){11 cin>>b;12 s.push(b);13 }14 if(a==2) s.pop();15 if(a==3) cout<
<

這麼水,感覺有點虛。

题目来源:CODE[VS]

转载于:https://www.cnblogs.com/J-william/p/6194573.html

你可能感兴趣的文章
【跃迁之路】【687天】程序员高效学习方法论探索系列(实验阶段444-2019.1.6)...
查看>>
假装用某米赛尔号的角度看Python面向对象编程
查看>>
RGBA和OPACITY的区别&DISPLAY和VISIBILITY的区别
查看>>
膨胀的template class成员函数
查看>>
【leetcode】102. Binary Tree Level Order Traversal 水平遍历二叉树
查看>>
java中的内存模型
查看>>
Vue 初始化性能优化
查看>>
[LeetCode] Sudoku Solver [Backtracking]
查看>>
js函数调用模式和常用的几个方法
查看>>
zookeeper:集群中实例的数量
查看>>
基于redis实现的锁(用于控制nodejs的并发)
查看>>
js手札--关于AMD的简单分析
查看>>
Elixir Ranch: 一个用于处理套接字的网络库
查看>>
JMS规范及相关实现
查看>>
衡量企业应用数据库性能的6大指标
查看>>
ng的缓存模板的用法
查看>>
Vimium 快捷键指南
查看>>
Javascript MV*模式
查看>>
【JavaScript】【函数】蛛丝马迹
查看>>
Windows Media Center SDK 在 GitHub 上发布
查看>>