多项式求值问题——栈实现

本文介绍了如何使用两个栈解决多项式求值问题,包括思路解析和具体步骤。通过遍历表达式,判断并处理操作数和操作符,根据优先级进行计算,最终得出结果。
摘要由CSDN通过智能技术生成

多项式求值问题相信大家都不会陌生,我们日常生活中经常遇见类似的问题,比如 2+1+3*4/(5+5),看起来好像挺简单的,但是如何用编程实现呢?如何让计算机帮我们实现呢?这就是我们今天要讨论的问题——多项式求值(中缀式求值)。

 

解题思路:

 

1.我们要用两个栈来实现多项式求值问题。

              <1>.第一个栈用来保存操作数。

              <2>.第二个栈用来保存操作符。

2.如何实现。

 

              <1>.读入我们的表达式。

              <2>.遍历表达式的各个项,并确定当前项是运算符还是操作数。

              <3>.如果是操作数,直接压入操作数栈。

              <4>.如果是操作符,则分为两种:

                               【1】.如果当前操作符的优先级大于操作符栈顶操作符的优先级,则将当前操作符压入操作符栈。继续遍历。

                               【2】.如果当前操作符的优先级小于操作符栈顶操作符的优先级,则弹出操作符栈栈顶的操作符,并同时弹出两个操作数,进行运算后,将结果压入操作数栈,继续比较操作符栈栈顶操作符与当前操作符的优先级关系。。。

             <5>.当

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值