栈的基础知识:数据结构-栈
队列基础知识:数据结构-队列
栈
是我们平时开发中都常常遇到的一种数据结构。如:js报错时,浏览器中看到的错误调用栈。我们需要利用其核心后进先出
的特点,来判断栈顶(即出栈元素)和即将入栈元素之间是否存在一定关系?来做求解。如上面的正确的括号问题、逆波兰表达式求值和删除字符串中的所有相邻重复项问题都是类似的思路。
队列
的特点是先进先出
。在上述的单调队列
题目中239. 滑动窗口最大值,我们需要注意push和pop方法和传统实现的区别。
-
push(value):如果push的元素value大于入口元素的数值,那么就将队列出口的元素弹出,直到push元素的数值小于等于队列入口元素的数值为止
-
pop(value):如果窗口移除的元素value等于单调队列的出口元素,那么队列弹出元素,否则不用任何操作
其实核心就是保持队列的单调性,注意不同的题目,实现的push和pop方法可能不一致,这并不是固定的一种实现方式,但终旨是一样的。