在基础的数据结构中栈和队列使用极其广泛,其用法也很多,今天就来总结一下栈和队列的使用方法和相关的题目。

队列Queue

队列是一个线性数据 结构,特点是先入先出,也就是能保证先入队的元素先出队,也即FIFO First In First Out。与现实生活中的排队是一样的。

单调队列,队列中的元素以非递增顺序或者非递减顺序排列。

也是一个线性结构,与队列类似,但它是先入后出,或者说后入先出,FILO First In Last Out。现实生活中也有,比如像盘子,通常是叠在一起的,这就是一个栈,一个一个叠 在一起,最后放上去的,最先拿下来用。

程序运行时会用到栈,函数的调用会用到栈。还有一些模拟的场景也会用到栈,比如像处理括号和表达式一类的问题时。

双端队列Deque读作dek,是两端都可以入队和出队,因此它即可以用作栈也可以用作队列,在实际使用中是最多的,大多数时候都尽可能用双端队列。