栈 stack
1. 头文件
#include<stack>
2. 操作语句
stack<Type> s; //定义一个 Type 类型的栈 s
s.push(a); //将 a 压入栈顶,无返回
s.pop(); //删除栈首元素,无返回
s.top(); //返回栈首元素,不删除
s.size(); //返回栈中元素个数
s.empyt(); //判断栈是否为空,为空返回 true
3. 代码实现
#include<iostream>
#include<stack>
using namespace std;
int main(){
stack<int> s;
int n,a;
cin>>n;
for(int i=0;i<n;i++){
cin>>a;
s.push(a);
}
if(s.empty())
cout<<"栈为空"<<endl;
else
cout<<"栈长度"<<s.size()<<endl;
for(int i=0;i<n;i++){
cout<<s.top()<<" ";
s.pop();
}
cout<<endl;
if(s.empty())
cout<<"栈为空"<<endl;
else
cout<<"栈长度"<<s.size()<<endl;
return 0;
}
队列 queue
1. 头文件
#include<queue>
2. 操作语句
queue<Type> s; //定义一个 Type 类型的队列
s.push(a); //将 a 压入队尾,无返回
s.pop(); //删除队首元素,无返回
s.front(); //返回队首元素,但不删除
s.back(); //返回队尾元素,但不删除
s.size(); //返回队列中元素的个数
s.empty(); //判断栈是否为空,为空返回 true
3. 代码实现
#include<iostream>
#include<queue>
using namespace std;
int main(){
queue<int> s;
int n,a;
cin>>n;
for(int i=0;i<n;i++){
cin>>a;
s.push(a);
}
if(s.empty())
cout<<"队列为空"<<endl;
else
cout<<"队列长度"<<s.size()<<endl;
for(int i=0;i<n;i++){
cout<<s.front()<<" "<<s.back()<<endl;
s.pop();
}
if(s.empty())
cout<<"队列为空"<<endl;
else
cout<<"队列长度"<<s.size()<<endl;
return 0;
}