前缀、中缀、后缀表达式

举报
荞慧子 发表于 2022/12/31 23:32:52 2022/12/31
【摘要】  前缀表达式规则:        从右至左扫描表达式,遇到数字时,将数字压入堆栈,遇到运算符时,弹出栈顶的两个数,用运算符对它们进行相应的计算(栈顶元素和次顶元素进行计算),并将结果入数栈;重复上述过程,直至表达式最左端,最后运算得出的值即为表达式的结果。例如:(3 + 4) * 5 - 6 对应的前缀表达式是 - * + 3 4 5 6针对前缀表达式求值步骤如下:(1)从右至左进行扫描,将...

 前缀表达式

规则:

        从右至左扫描表达式,遇到数字时,将数字压入堆栈,遇到运算符时,弹出栈顶的两个数,用运算符对它们进行相应的计算(栈顶元素和次顶元素进行计算),并将结果入数栈;重复上述过程,直至表达式最左端,最后运算得出的值即为表达式的结果。

例如:(3 + 4) * 5 - 6 对应的前缀表达式是 - * + 3 4 5 6

针对前缀表达式求值步骤如下:

(1)从右至左进行扫描,将6、5、4、3压入堆栈。

(2)遇到 + 运算符时,弹出3和4(3为栈顶元素,4位次顶元素),计算出3 + 4 的值,再将得到的值7入栈(此时7位栈顶)。

(3)然后遇到 * 运算符,所以要弹出7和5(7为栈顶元素,5为次顶元素),计算出7 * 5的值,再将得到的值35如栈(此时35为栈顶)。

(4)最后遇到 - 运算符,弹出35和6(35为栈顶元素,6为次顶元素),计算出35 - 6 的值,得到最后结果为29。

中缀表达式

        中缀表达式是最常见的运算表达式,如(3 + 4) * 5 - 6

中缀表达式的求值是我们最熟悉的,但是对计算机来说却不好操作。因此,在计算结果时,往往会将中缀表达式转换为其他表达式来操作(一般转换为后缀表达式)

后缀表达式

        后缀表达式又称为逆波兰表达式,与前缀表达式相似,知识运算符位于操作数之后。

规则:

        从左至右扫描表达式,遇到数字时,将数字压入堆栈,遇到运算符时,弹出栈顶的两个数,用运算符对它们进行相应的计算(次顶元素和栈顶元素进行计算),并将结果入数栈;重复上述过程,直至表达式最右端,最后运算得出的值即为表达式的结果。

例如:(3 + 4) * 5 - 6 对应的后缀表达式是3 4 + 5 * 6 -

针对后缀表达式求值步骤如下:

(1)从左至右进行扫描,将3和4压入堆栈。

(2)遇到 + 运算符,因此弹出4和3(4位次顶元素,3为栈顶元素),计算出3 + 4 的值,再将得到的值7入栈(此时7位栈顶)。

(3)将5入栈。

(4)然后遇到 * 运算符,因此弹出5和7,计算7 * 5 的值,然后将值35入栈。

(5)将6入栈。

(6)最后遇到 - 运算符,计算出35 - 6 的值,得到最后结果为29。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。