C++ 常规题目之双栈求解中缀表达式

2024-01-15 18:49:15 浏览数 (1)

表达式求值对于有知识经验的人类而言,可以通过认知,按运算符的优先级进行先后运算。但对计算机而言,表达式仅是一串普通的信息而已,需要通过编码的方式告诉计算机运算法则。这个过程则需要借助于栈来实现。

表达式由 2 部分组成:

  • 操作数。
  • 运算符。

在一个复杂的表达式中,操作数和运算符可以有多个,运算符之间存在优先级,且不同运算符所需要的操作数的数量也有差异。这时,表达式的计算过程就变得较复杂。为了简化问题,本文只限于讨论基于常量操作数和双目运算符的表达式。

在计算机中,表达式的描述可以有以下 3 种:

  • 后缀表达式:操作数,操作数,运算符。
  • 中缀表达式:操作数,运算符,操作数。数学上最常见的描述方式。
  • 前缀表达式:运算符,操作数,操作数。

本视频讲解中缀表达式的求解流程。

可以在解析中缀表达式对之求解,也可以把中缀表达式转换成后缀表达式后再求解。

0 人点赞