栈的特点:先进后出
队列特点:先进先出
stl
stack:
#include <stack>
stack<int> p;//建栈
p.push(x);//入栈
p.top();//栈顶元素
p.pop();//删除栈顶
p.size();//栈的大小
p.empty();//是否栈空
queue:
#include <queue>
queue<int> q;
q.push(x);//入队列
q.front();//队列头元素
q.back();//队尾元素
q.pop();//删除队头
q.size();//队列大小
q.empty();//是否队列空
手写
int a[N];
int tt = 0;
a[++tt] = x;//入栈
tt--;//出栈
if(tt == 0) //空栈
else //栈不空
a[tt];//栈顶元素
int q[N];
int tt = -1;//队列尾
int hh = 0;//队列头
q[++tt] = x;//入队列
hh++;//出队列
if(hh<=tt) //队列不空
else //队列空
q[hh];//队头元素