栈部分整理(三)

栈的应用

进制转换

进制转换数学思想

  • 假设将十进制V转化为二进制,将V除2得余数,再商除2得余数最后一直除到0然后余数倒序输出即是转化的数
    栈部分整理(三)

算法思想

  • 1、分析循环条件:商>0
  • 2、循环体要实现的东西:每次取余,作商
  • 3、循环弹栈
    栈部分整理(三)

括号匹配问题

算法思想

  • 设置一个栈,读到左括号时进栈,读到右括号时弹出元素与读到的右括号配对,若匹配成功,继续读入,否则返回FALSE,最后判断栈是否为空,不为空则返回False,为空返回true

算法实现

栈部分整理(三)
栈部分整理(三)

表达式求值问题

补充知识(中缀表达式+后缀表达式)

栈部分整理(三)
栈部分整理(三)

算法思想

  • 从左到右依次扫描后缀表达式,遇到符号进栈,遇到符号就讲栈顶前两个数字出栈进行运算,然后将结果进栈,直到最后结果

递归

定义

  • 如果一个函数、过程或数据结构的定义中又应用了它本身,那么这个函数、过程或数据算法称为是递归定义的。递归最重要的是【递归式】和【递归边界】。
  • 递归式:将一个复杂的问题分解为若干个子问题的依据
  • 递归边界:分解问题的尽头,当达到递归边界时,就要往回返回
    栈部分整理(三)

斐波那契数列

栈部分整理(三)