多项式求值问题相信大家都不会陌生,我们日常生活中经常遇见类似的问题,比如 2+1+3*4/(5+5),看起来好像挺简单的,但是如何用编程实现呢?如何让计算机帮我们实现呢?这就是我们今天要讨论的问题——多项式求值(中缀式求值)。
解题思路:
1.我们要用两个栈来实现多项式求值问题。
<1>.第一个栈用来保存操作数。
<2>.第二个栈用来保存操作符。
2.如何实现。
<1>.读入我们的表达式。
<2>.遍历表达式的各个项,并确定当前项是运算符还是操作数。
<3>.如果是操作数,直接压入操作数栈。
<4>.如果是操作符,则分为两种:
【1】.如果当前操作符的优先级大于操作符栈顶操作符的优先级,则将当前操作符压入操作符栈。继续遍历。
【2】.如果当前操作符的优先级小于操作符栈顶操作符的优先级,则弹出操作符栈栈顶的操作符,并同时弹出两个操作数,进行运算后,将结果压入操作数栈,继续比较操作符栈栈顶操作符与当前操作符的优先级关系。。。
<5>.当