栈
# 栈(stack):后进先出的数据结构
由于js中没有栈的概念,所以栈都是利用Array数组来模拟栈的操作
//实例
const stack = []
stack.push(1)//stack = [1]
stack.push(2)//stack = [1,2]
const item1 = stack.pop()//stack = [1];item1 = 2
const item2 = stack.pop(2)//stack = [];item2 = 1
1
2
3
4
5
6
2
3
4
5
6
# 应用场景
# 十进制转二进制
原理:
- 后厨的余数需要排在前面
- 余数依次入栈然后再依次出栈,实现余数的倒序输出
# 有效的括号:判断括号是否有效闭合
- 越靠后的左括号对应的右括号越靠前。
- 遇到左括号入栈,遇到右括号出栈,最后判断栈空即为合法
- ✅实例题解(题号20)
- 新建一个栈
- 扫描字符串遇到左括号就入栈,遇到右括号类型,与栈顶元素匹配。匹配的右括号就出栈,类型不匹配直接判定不合法。
- 最后判断栈是否为空,否则为不合法。
# 函数调用堆栈

- 最后调用的函数,最先执行完成。
- js解释器使用栈来控制函数的调用顺序。
编辑 (opens new window)
上次更新: 2022/02/21, 05:57:00