900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > 表达式计算:后缀表达式求解 以及 中缀表达式转换为后缀表达式

表达式计算:后缀表达式求解 以及 中缀表达式转换为后缀表达式

时间:2020-08-01 06:49:30

相关推荐

表达式计算:后缀表达式求解 以及 中缀表达式转换为后缀表达式

后缀表达式

后缀表达式格式:

不包含括号,运算符放在两个运算对象的后面.

后缀表达式运算规则:(从左向右)

所有计算均按运算符出现的顺序(不再考虑乘除优先于加减这种运算符的优先规则),严格从左向右进行。

遇到数字直接入栈。

遇到运算符,栈内最上面的两个数字按顺序出栈进行运算。先出栈的数字放在运算符右边,后出栈的数字放在运算符左边

后缀表达式:1.2 1.3 + 2 4.2 * -的值为多少?

遇到数字1.2,入栈.

遇到数字1.3,入栈.

遇到运算符+,栈内最上面的两个数字按顺序出栈进行运算。先出栈的数字放在运算符右边,后出栈的数字放在运算符左边。1.3先出栈,放在+号右边;1.2后出栈,放在+号左边。 即:1.3+1.2 = 1.5,然后再将算出来的结果1.5入栈. (此时栈内数字时1.5,前面入栈的1.21.3已经出栈了哦)

遇到数字2,入栈.

遇到数字4.2,入栈. (此时栈内数字为1.524.2,其中1.5在栈底,4.2在栈顶)

遇到运算符 * ,栈内最上面的两个数字按顺序出栈进行运算。先出栈的数字放在运算符右边,后出栈的数字放在运算符左边。4.2先出栈,放在 * 号右边;2后出栈,放在 * 号左边。 即:2 * 4.2 = 8.4,然后再将算出来的结果8.2入栈. (此时栈内数字为1.58.4

遇到运算符-1.58.4出栈运算,即1.5 - 8.4 = -5.9

所以后缀表达式:1.2 1.3 + 2 4.2 * -的值-5.9

表达式的转换

中缀表达式格式:

运算符放在两个运算对象之间,如:a*(b+c)/ d

将中缀表达式转换为后缀表达式的规则:(从左向右)

遇到空格,不需处理

遇到运算数,直接输出

遇到左括号,将其压入堆栈

遇到右括号,表明括号内的中缀表达式已经扫描完毕,将栈顶的运算符弹出并输出,直至遇到左括号(左括号也出栈,但不输出)

遇到运算符,若该运算符的优先级大于栈顶运算符的优先级,则把它压栈;若该运算符的优先级小于等于栈顶运算符,则将栈顶运算符出栈并输出,然后再和新的栈顶运算符比较,按照同样的处理方法,直至该运算符大于栈顶运算符优先级为止,然后将该运算符压栈【括号优先级最高,乘除次之,加减最低】 【括号在外面时,优先级是;但括号在栈内,优先级确实最低的】

所有对象处理完毕后,将堆栈内的运算符全部按顺序输出

中缀表达式2 * ( 9 + 6 / 3 - 5 ) + 4转换为后缀表达式的过程

所以中缀表达式2 * ( 9 + 6 / 3 - 5 ) + 4转换为后缀表达式为2 9 6 3 / + 5 - * 4 +

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。