首页 > 代码库 > 第十三课、计算器核心解析算法(中)

第十三课、计算器核心解析算法(中)

一、中缀转后缀

1、中缀表达式转后缀表达式的过程类似编译过程

(1)、四则运算表达式中的括号必须匹配

(2)、根据运算符优先级进行转换

(3)、转换后的表达式中没有括号

(4)、转换后可以顺序计算出最后结果

2、转换过程

(1)、当元素e为数字:输出

(2)、当元素e为运算符:

A、与栈顶运算符进行优先级比较

B、小于等于:将栈顶元素输出,转A执行

C、大于:将当前元素e入栈

(3)、当前元素为e为左括号:入栈

(4)、当前元素e为右括号:

A、弹出栈顶元素并输出,直至栈顶元素为左括号

B、将栈顶的左括号从栈中弹出不要

技术分享

二、关键点:括号匹配算法

(1)、括号成对出现

(2)、左括号必须先于右括号出现

技术分享

三、小结

(1)、后缀表达式是程序计算复杂表达式的基础

(2)、中缀转后缀是基于栈数据结构的

(3)、转换过程能够发现表达式中的错误

 

第十三课、计算器核心解析算法(中)