解题思路:
在比赛中,我们呢往往没有足够的时间进行直接创建一个栈的方法,所以我们可以利用C++中的STL,STL为我们提前封装好了各种代码集,栈也是其封装好了的其中一类。
其使用方法为:
stack<Your_stuct> Your_name;
接着我们只需要记忆一些封装好了的用法即可,这里给出一些常用的
为了简化,我这样定义栈
stack<int> q;
q.empty() 判断栈是否为空 q.push() 输入一个数入栈【入栈】 q.pop() 将栈顶元素丢弃【出栈】 q.top() 返回栈顶元素(不丢弃/出栈) q.size() 返回栈的长度(大小)
因此本题利用STL描写的话可以变成这样:
参考代码:
#include<bits/stdc++.h> #define hh ios::sync_with_stdio(false),cin.tie(0),cout.tie(0) using namespace std; int main(){ hh; int n; while(cin>>n){ stack<int> todo; while(n){ todo.push(n%8); n/=8; } while(!todo.empty()){ cout<<todo.top(); todo.pop(); } cout<<endl; } return 0; }
这样比直接写栈要简单很多了,但是还是必须要理解了栈的原理之后再使用STL的栈,否则很容易出问题的。
0.0分
1 人评分
C语言程序设计教程(第三版)课后习题8.9 (C语言代码)浏览:1763 |
C语言训练-求矩阵的两对角线上的元素之和 (C语言代码)浏览:619 |
【绝对值排序】 (C语言代码)浏览:832 |
C语言程序设计教程(第三版)课后习题1.6 (C语言代码)浏览:732 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:723 |
WU-格式化数据输出 (C++代码)浏览:1312 |
C语言程序设计教程(第三版)课后习题4.9 (C语言代码)浏览:648 |
简单的a+b (C语言代码)浏览:574 |
C语言程序设计教程(第三版)课后习题10.2 (C语言代码)浏览:755 |
C二级辅导-阶乘数列 (C语言代码)浏览:583 |