当前位置:   article > 正文

一遍就懂 之 数据结构--“栈”!快来看看吧!_所有的递归都可以用栈表示吗

所有的递归都可以用栈表示吗

栈是什么?

一个后进先出的数据结构。

在这里插入图片描述

push: 入栈
pop: 出栈

JavaScript中没有栈,但可以用Array实现栈的所有功能。

在这里插入图片描述
在这里插入图片描述
栈的应用场景:

  1. 需要后进先出的场景。
  2. 比如: 十进制转二进制、判断字符串的括号是否有效、函数调用堆栈……

场景一: 十进制转二进制

在这里插入图片描述

  1. 后出来的余数反而要排到前面。 100011 (一后一前—入栈出栈)
  2. 把余数依次入栈,然后再出栈,就可以实现余数倒序输出。

场景二:有效的括号(有效的闭合) --给你一个字符串,里面都是括号,判断字符串里面的括号是否有效?

在这里插入图片描述

  1. 越靠后的左括号,对应的右括号越靠前。 --(一后一前—入栈出栈)
  2. 左括号入栈,右括号出栈,最后栈空了就是合法的。

场景三:函数调用堆栈

在这里插入图片描述

  1. 最后调用额函数,最先执行完。(一后一前—后进先出—入栈出栈)
  2. JS解释器使用栈来控制函数的调用顺序。

总结:所有有后进先出的规律的场景,都可以用栈来解决问题。

LeetCode: 20.有效

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小惠珠哦/article/detail/952414
推荐阅读
相关标签
  

闽ICP备14008679号