数据结构-01-图解后缀表达式值计算方式

it2025-01-08  8

目录:

数据结构-01-图解后缀表达式值计算方式数据结构-02 图解中缀表达式转后缀表达式并计算值

1.简介

问题:

我们平常使用的数学表达式大多数是“中缀表达式”例如:9+(3-1)×3+10÷2,对人比较友好,但是这个对计算机计算并不友好,因为计算机无法智能判断运算顺序的问题(比如说乘法加法等优先级和括号等)

解决方案:

20世纪50年代,波兰逻辑学家Jan·ukasiewicz,想到了不需要判断顺序的数学表达式,这就是后缀表达式(也称之为逆波兰表达式)

2.图解后缀表达式计算方式

规则:遍历后缀表达式的每个元素, 1.遇到数字就进栈, 2.遇到符号就将栈顶的2个元素出栈,然后将计算结果进栈。(下面的例子会帮助你理解)

下面是计算后缀表达式"9 3 1-3*+10 2/+"(原始中缀表达式是 9+(3-1)×3+10÷2,后面一节将会介绍中缀转后缀的教程)

初始化一个空栈 1.因为前面3个数字(9,3,1)都是数字,数字就进栈。

2.接着是 减号(-),符号就弹出2个栈顶元素计算结果,将结果后进栈 3.同理2.点数字就进栈 4.接着是乘号(*),符号就弹出2个栈顶元素计算结果,将结果后进栈 5.接着是加号(+),符号就弹出2个栈顶元素计算结果,将结果后进栈 6.接着是10,数字就进栈 7.接着是除法(/),符号就弹出2个栈顶元素计算结果,将结果后进栈 8.接着是加法(+),符号就弹出2个栈顶元素计算结果,将结果后进栈 9.最后遍历结束,将最后的栈元素返回结果

3.代码实现

我将会在接下来的章节实现 1.中缀表达式转后缀表达式 2.计算后缀表达式的值 到时候代码会放到总代码里面.

最新回复(0)