【问题标题】:program using Scheme that evaluates a postfix expression [closed]使用评估后缀表达式的方案的程序[关闭]
【发布时间】:2018-11-07 16:22:11
【问题描述】:

我想使用 scheme 转换后缀表达式 表达式将作为操作数和运算符列表提供给解释器,例如 display( postfix(30 8 7 + / 3 4 - *) ) 此示例应返回 -2 作为答案。

【问题讨论】:

  • StackOverflow 不是作业服务。所以希望你try to solve your own problem first。请更新您的问题以在minimal reproducible example 中显示您已经尝试过的内容。如需更多信息,请参阅How to Ask,并拨打tour :)
  • 这不是家庭作业我试过多次解决它先生,我只是需要一些帮助。
  • 如果您尝试多次解决它,请展示您尝试过的内容。然后我们可以指出你哪里出了问题以及如何解决它。但我们不会为你写。
  • 对不起先生,但我尝试了很多,我也不想要一个糟糕的成绩,你能帮帮我吗。
  • 这仍然是一个写得很糟糕的问题,所以仍然存在反对意见。

标签: scheme postfix-notation


【解决方案1】:

这是伪代码:

  • 将堆栈初始化为空列表
  • 对于表达式中的每个元素 e:
    • 如果 e 是一个数字,则将其压入堆栈
    • 否则,调用运算符对应的函数(可以使用关联列表或cond来查找),将堆栈作为参数传递
      - 该函数从堆栈中弹出所需的参数
      - 它计算结果
      - 将结果压入堆栈
      - 它返回更新的堆栈,主循环将其分配回堆栈变量
  • 最后,打印堆栈的顶部元素

【讨论】:

  • 非常感谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多