栈的应用
进制转换
进制转换数学思想
- 假设将十进制V转化为二进制,将V除2得余数,再商除2得余数最后一直除到0然后余数倒序输出即是转化的数
算法思想
- 1、分析循环条件:商>0
- 2、循环体要实现的东西:每次取余,作商
- 3、循环弹栈
括号匹配问题
算法思想
- 设置一个栈,读到左括号时进栈,读到右括号时弹出元素与读到的右括号配对,若匹配成功,继续读入,否则返回FALSE,最后判断栈是否为空,不为空则返回False,为空返回true
算法实现
表达式求值问题
补充知识(中缀表达式+后缀表达式)
算法思想
- 从左到右依次扫描后缀表达式,遇到符号进栈,遇到符号就讲栈顶前两个数字出栈进行运算,然后将结果进栈,直到最后结果
递归
定义
- 如果一个函数、过程或数据结构的定义中又应用了它本身,那么这个函数、过程或数据算法称为是递归定义的。递归最重要的是【递归式】和【递归边界】。
- 递归式:将一个复杂的问题分解为若干个子问题的依据
- 递归边界:分解问题的尽头,当达到递归边界时,就要往回返回