栈的应用场景
栈是一种先进后出的数据结构(类比弹夹),在程序执行过程中,栈可以说是应用最广泛的数据结构之一了。
Java方法执行的时候会把方法的相关信息封装到一个栈帧放入虚拟机中。例如当methodOne调用methodTwo,methodTwo调用methodThree执行时,虚拟栈如下所示。当methodThree执行完毕则会出栈,methodTwo执行完毕出栈。即方法调用入栈,方法执行出栈
简单的一个表达式计算的过程也会用到操作数栈
(100+200)*300的计算过程如下
- 将100入栈
- 将200入栈
- 弹出栈顶的2个元素100和200,相加后入栈
- 将300入栈
- 弹出栈顶的2个元素300和200,相乘后入栈
有效括号
题目地址:LeetCode 20. 有效的括号
给定一个只包括 ‘(’,’)’,’{’,’}’,’[’&