蒟蒻E兔砸近期打算刷一波复习
于是它开始写这篇博客……可能还有之后的贰弎肆...﹢∞
(如果再不复习恐怕以后模拟赛是要挂,鱼脑啥都记不住w
先从度娘的话开始
“它是一种运算受限的线性表。其限制是仅允许在表的一端进行插入和删除运算。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。”
说人话,其实就是一个[只有一个进出口的]车站,先进的车要最后出。比较装x的说法是LIFO
LIFO_百度翻译
下面是正题↓
一些基本操作:
#include<stack>//头文件
#include<iostream>
using namespace std;
stack<int>s;//定义栈
int main()
{
int x,y;
cin>>x>>y;
s.push(x);//入栈操作
s.push(y);
s.pop();//出栈弹出
cout<<s.size()<<endl;//长度
if(s.empty())cout<<2333<<endl;//是否为空
else
cout<<s.top()<<endl;//顶端元素
return 0;
}
下面是一个简单的应用,十进制转化二进制
#include<stack>
#include<iostream>
using namespace std;
stack<int>s;
int main()
{
int x;
cin>>x;
while(x>=1){
s.push(x%2);
x/=2;
}
while(!s.empty()){
cout<<s.top();
s.pop();
}
cout<<endl;
return 0;
}
不知道为啥插入不了代码,就这样吧