表达式求值和前中后缀表达式 划重点

博客主要围绕表达式求值和前中后缀表达式展开。表达式求值需设立操作数栈和运算符栈,依据运算符优先级进行运算。中缀表达式是常用形式,人易理解但计算机处理难;前缀表达式运算符在操作数前;后缀表达式与前缀类似。

表达式求值

	算法思路:
				1.设立操作数栈和运算符栈;
				2.设表达式的结束符为“#”,预设运算符的栈底为“#”
				3.若当前字符为操作数,则直接压入操作数栈
				4.若当前字符是运算符,且运算符额优先级高于栈顶运算符则进栈,否则,从操作数栈中弹出运算符栈的栈顶运算符,经计算后将结果压入操作数栈。

1.设立操作数栈和运算符栈;在这里插入图片描述2.运算示例

3*2+5# ps表达式输入的时候必须要在最后带有一个#表示输入结束 有点尴尬😂我只在最后面的需要使用的时候才加入#
1.操作数直接入栈
在这里插入图片描述
2.运算符需要判断和上其他运算符的优先级,优先级高的直接入栈
在这里插入图片描述
3.操作数直接入栈在这里插入图片描述
4.当前运算符优先级低则弹出操作数栈顶的两位数和运算符的栈顶的运算符计算后将结果压入操作数栈运算符入栈在这里插入图片描述在这里插入图片描述

5.操作数直接入栈在这里插入图片描述
6. # 入栈是时代表运算结束输出结果在这里插入图片描述

前中后缀表达式

举例:
中缀表达式:1+(2+3)4-5
前缀表达式:-+1
+2345
后缀表达式:123+4*+5-

中缀表达式

中缀表达式就是我们平时常用的表达式 ,对人而言容易理解,而对于计算机而言不太容易理解。

前缀表达式

前缀表达式的运算符位于两个相应操作数之间,前缀表达式又被称为前缀记法或波兰式
在这里插入图片描述
计算机处理表达式
在这里插入图片描述
中缀表达式向前缀表达式转换(当时我考数据结构的时候这个是重难点)
在这里插入图片描述

后缀表达式和前缀表达式类似

	后缀表达式的运算符前跟着两个操作数, 和前缀表达式极其类似,此处不做赘述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值