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

目录:

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.计算后缀表达式的值
到时候代码会放到总代码里面.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JarvanStack

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值