栈和队列

栈和队列

此处均为用数组模拟(因为懒
实际上是因为STL里的栈和队列常数太大 ,不如用数组模拟,而且能做的事也比STL多

栈:

先进后出(可以理解成一个坑

int stk[N],tt;
skt[++tt]=x;//入栈

tt--;//弹出

if(tt==0) return empty;
else return not empty;

skt[tt]//栈顶

队列:先进先出


int q[N],hh=0,tt=-1;

q[++tt]=x;//插入

if(hh<=tt) not empty;
else empty//判断队列是否为空
    
hh++;//弹出

应用:单调栈,单调队列(滑动窗口)

一定要自己手模拟几遍,增强记忆,充分理解

单调栈:
维持一个栈使得栈中的元素是严格单调上升或单调下降的

队列

此处均为用数组模拟(因为不会
实际上是因为STL里的栈和队列常数太大 ,不如用数组模拟,而且数组能做的事也比STL多

栈:先进后出(可以理解成一个坑

int stk[N],tt;
skt[++tt]=x;//入栈

tt--;//弹出

if(tt==0) return empty;
else return not empty;

skt[tt]//栈顶

队列:先进先出


int q[N],hh=0,tt=-1;

q[++tt]=x;//插入

if(hh<=tt) not empty;
else empty//判断队列是否为空
    
hh++;//弹出

应用:单调栈,单调队列(滑动窗口)

一定要自己手模拟几遍,增强记忆,充分理解

单调栈:
维持一个栈使得栈中的元素是严格单调上升或单调下降的

posted @ 2021-09-22 21:41  RevolutionBP  阅读(28)  评论(0编辑  收藏  举报