goldexperiences 2020-04-20 11:32 采纳率: 0%
浏览 460

递归求前缀表达式的值

一、求前缀表达式的值
1.实验目的
熟练掌握递归方法和表达式求解方法。

2.实验内容
算术表达式有前缀表示法、中缀表示法和后缀表示法等形式。前缀表达式指二元运算符位于两个运算数之前,例如2 + 3 * (7 - 4) + 8 / 4的前缀表达式是: + + 2 * 3 – 7 4 / 8 4。请设计程序计算前缀表达式的结果值。

3.实验要求
(1)输入说明:输入在一行内给出不超过30个字符的前缀表达式,只包含+、-、*、/ 以及运算数,不同对象(运算数、运算符号)之间以空格分隔。
(2)输出说明:输岀前缀表达式的运算结果(精确到小数点后1位), 或输出错误信息”ERROR”。
(3)测试用例:图片说明

4.实验分析

前缀表达式的基本形式是:“运算符号(空格)子前缀表达式(空格)子前缀表达式”,其中“子前缀表达式”可能是一个包含运算符号的前缀表达式,也可能只是一个单纯的运算数。例如:前缀表达式“+ + 2 * 3 – 7 4 / 8 4”就是由运算符号“+”和子前缀表达式“ + 2 * 3 – 7 4"以及子前缀表达式“/ 8 4”组成。“/ 8 4”也是由运算符号“/”和子前缀表达式“8”和“4"组成。由此,可以看到前缀表达式形式上的递归关系,利用递归关系设计相应的递归求解的大致思路如下。

①用GetOp()从输入序列中获得当前对象obj。

②如果obj为运算数,递归结束,返回obj。

③如果obj为运算符号op,则连续两次递归调用分别获得两个子前缀表达式结果a和b;对a和b应用op进行运算,返回运算结果。

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2022-09-20 21:41
    关注
    不知道你这个问题是否已经解决, 如果还没有解决的话:

    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

悬赏问题

  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?