ALGORITHM VISUALIZATION / 01

中缀表达式求值

看着每个数字与运算符移动:先借助运算符栈排出后缀序列,再借助数值栈算出答案。

01 中缀 → 后缀 02 后缀 → 答案
INPUT

输入一个表达式

整数、括号、+ − × ÷;输入时使用 + - * /

可使用空格与一元正负号。整数除法向零截断,所有结果按有符号 64 位整数检查。

PROCESS

运算过程

第 1 步
1 中缀转后缀 2 计算后缀
当前表达式高亮的是当前读取的内容
⌘

运算符栈

暂存优先级与括号

栈底 → 栈顶
→

后缀序列

按顺序排列的输出

从左向右读取
=

数值栈

后缀计算时保存中间结果

栈底 → 栈顶

键盘 ← → 也可以切换步骤

SOURCE CODE

作业源码

对应的 C++17 实现使用“中缀转后缀,再计算后缀表达式”,包含输入格式、括号、除零和 64 位溢出检查。

下载 C++ 源码