期末复习——表达式求值问题

问题分析

在这里插入图片描述

  1. 确定计算规则,即明确运算符的优先级->要考虑相邻两个算符的优先级在这里插入图片描述

  2. 确定当前处理字符是运算符还是操作数
    在这里插入图片描述

  3. 每个运算符的运算次序要由它之后的一个运算符来定

算法思路

  1. 设立操作数栈运算符栈
  2. 设表达式的结束符为“#”,预设运算符栈的栈底为“#”;
  3. 若当前字符是操作数,则直接压入操作数栈
  4. 若当前字符是运算符,且运算符的优先级高于栈顶运算符则进栈;否则,从操作数栈中弹出两个操作数并弹出运算符栈的栈顶运算符,经计算后将结果压入操作数栈

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/ITmincherry/article/details/106710520