push 放入元素
empty 检测是否存在元素
top (栈)/ front(队列) 查看最顶部 / 最前端元素
pop 删除元素
size 元素个数
栈
题目描述
设计一个简单的整数栈。
栈是一种基础的数据结构。他只能在一段插入和删除。
我们可以在任意时刻往栈中放入元素,也可以在任意时刻取出栈里的元素。
每当我们把数字放入栈中(也叫入栈,压栈等),新放入的数字只能放在最后面。
每当我们取出元素时(也叫出栈,弹栈等),只能取出最后放入的元素。
请你设计一个程序,实现这样的功能。
输入格式
输入有若干行,包括三种操作:
PUSH X
向栈顶压入整数X
POP
弹出并输出栈顶的整数.如果栈为空,请输出字符串"Empty"
END
表示结束
输出格式
参照输入部分,输出应该输出的
样例输入
PUSH 1
PUSH 2
POP
POP
POP
PUSH 5
POP
POP
POP
END
样例输出
2
1
Empty
5
Empty
Empty
#include<iostream>
#include<stack>
using namespace std;
int main(){
stack<int> stk;
string tp;
int tpnum,num=0;
while(cin>>tp){
if(tp[1]=='N')
break;
if(tp[1]=='U'){
cin>>tpnum;
stk.push(tpnum);
}
if(tp[1]=='O'){
if(stk.empty())
cout<<"Empty"<<endl;
else{
cout<<stk.top()<<endl;
stk.pop();
}
}
}
return 0;
}
队列
题目描述
设计一个简单的队列
输入格式
输入包括三种操作:
PUSH X
在队列中加入整数X
POP
弹出并输出队列前端的整数.如果队列为空,请输出字符串"Empty"
END
表示结束
输出格式
输出该输出的
样例输入
PUSH 1
PUSH 2
POP
POP
POP
PUSH 5
POP
POP
POP
END
样例输出
1
2
Empty
5
Empty
Empty
#include<iostream>
#include<queue>
using namespace std;
int main(){
queue<int> que;
string tp;
int tpnum,num=0;
while(cin>>tp){
if(tp[1]=='N')
break;
if(tp[1]=='U'){
cin>>tpnum;
que.push(tpnum);
}
if(tp[1]=='O'){
if(que.empty())
cout<<"Empty"<<endl;
else{
cout<<que.front()<<endl;
que.pop();
}
}
}
return 0;
}
优先队列
题目描述
设计一个简单的优先队列
输入格式
输入包括三种操作:
PUSH X
在队列中加入整数X
POP
弹出并输出最大的整数.如果队列为空,请输出字符串"Empty"
END
表示结束
输出格式
输出该输出的
样例输入
PUSH 1
PUSH 2
POP
POP
POP
PUSH 5
POP
POP
POP
END
样例输出
2
1
Empty
5
Empty
Empty
#include<iostream>
#include<queue>
using namespace std;
int main(){
priority_queue<int> que;
string tp;
int tpnum,num=0;
while(cin>>tp){
if(tp[1]=='N')
break;
if(tp[1]=='U'){
cin>>tpnum;
que.push(tpnum);
}
if(tp[1]=='O'){
if(que.empty())
cout<<"Empty"<<endl;
else{
cout<<que.top()<<endl;
que.pop();
}
}
}
return 0;
}
优先队列默认从大到小,如想从小到大:
priority_queue<int,vector<int>,greater<int> > pq;
再补一个两端队列
#include<iostream>
#include<queue>
#include<stack>
using namespace std;
int main(){
deque<int> dq;
dq.push_front(5);
dq.push_back(6);
dq.size();
if(!dq.empty()){
cout<<dq.front()<<" "<<dq.back();
dq.pop_front();
dq.pop_back();
}
}