问题标签 [postfix-notation]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1605 浏览

data-structures - 评估后订单表达式

结果值是多少7 4 3 + - 3 9 2 / + * 2 ^ 5 *

它在后序中。那么我怎样才能得到这个表达式的值呢?

0 投票
1 回答
1505 浏览

c# - 解析表达式(带有自定义函数和操作)

我有一个字符串,其中包含一个自定义表达式,我必须解析和评估:

例如:

FUNCTION_X 表示在 C# 中实现并返回 ILists 的函数。UNION 或 INTERSECT 是应该应用于列表的自定义函数,这些函数是从这些函数返回的。

Union 和 intersect 是通过 实现的Enumerable.Intersect/Enumerable.Union

如何以优雅和可扩展的方式实现解析和评估?

0 投票
2 回答
2504 浏览

c++ - 函数中返回语句的段错误

我的程序应该将提示从中缀转换为后缀。到目前为止,通过调试器和其他各种方法,我已经找到了我的段错误的确切点,但不明白为什么。

这是我的代码:

这是 itop.h:

这是我的 itop.cpp 文件:

这是 main.cpp:

该函数在

问题就在这里:

特别是在返回 num 之前,我收到“分段错误(核心转储)”错误消息。我使用过 gdb,我所知道的是,在“检查 + 或 -”之后,我看到“$1 = 2”。我不太确定这意味着什么,但这是我想要返回的。

感谢您的帮助。

0 投票
1 回答
156 浏览

c++ - 为什么我的打印功能会为我的后缀程序产生此错误?

我正在尝试编写一个程序来计算后缀表达式,它包括驱动程序和实现文件。这两个如下图所示:

我的实现文件显示在这里:

使用 g++ 编译此程序后,我最多可以输入两个值,直到出现如下所示的奇怪内存错误:

经过多次调试,我确定问题一定出在 .cpp 文件中的打印函数中:

我只是无法弄清楚它为什么会发生或如何克服它。

0 投票
1 回答
252 浏览

c# - 如何为包含带有可选参数的函数的表达式构建和评估后缀堆栈

例如:

我的第一个想法是创建一个特殊的标记,它是参数的计数,并在遇到“)”时将其推入堆栈。但是我不确定当参数本身可能是带参数的函数时如何保持计数。

0 投票
2 回答
184 浏览

c++ - 如何将 '+' 转换为 +、'*' 转换为 * 等

我正在编写一个函数,它以字符串的形式读取后缀表达式并相应地计算它。

有没有一种简单的方法可以将算术运算符的字符转换为 C++ 中的算术运算符本身?

0 投票
3 回答
1563 浏览

java - 比较变量时前缀和后缀递增

有人可以解释为什么这个代码输出是

在第一个 if 语句中,a = 0 b/c 似乎是一个后缀增量;因此 a 直到下一行才会增加;但是,两个a不相等,为什么?第二个如果我运行调试器时a的值为2,但测试为假,为什么?

0 投票
1 回答
1633 浏览

math - 用逆波兰表示法(后缀表示法)解释数学表达式

我找到了一种将中缀表示法的数学表达式转换为后缀表示法的方法。( http://en.wikipedia.org/wiki/Shunting-yard_algorithm ) 但是,我应该如何编码来解释结果表达式?

这是我的想法:

对于仅操作数表达式:

  1. 寻找一组遵循操作数-操作数-操作符格式的对象。
  2. 将运算符的计算规则应用于两个操作数。
  3. 将一组对象交换为一个操作数,这是计算的结果。

对于具有函数的表达式(正弦、绝对值、符号...)

  1. 寻找一组遵循操作数-操作数-...-操作符格式的对象。
    • 操作数的数量取决于需要传递给函数的参数数量。例如:
      • 正弦 - 一个参数(锐角)
      • 幂 - 二参数(数字m的n次方)
      • 3x3 矩阵 - 九个参数
  2. 做我上面提到的任何其他事情。

我现在的情况是我没有任何环境可以将我的想法实现为一段代码,因此我只能抽象地说。

这个想法是否可行?如果可以改进,请注意。也欢迎参考。

如果你在展示一段代码,请将代码改成大家都能理解的文字。例如:

改变:

进入:

end ...不过是可选的。

谢谢!

0 投票
1 回答
2553 浏览

java - 使用堆栈和运算符优先级对后缀进行中缀

我知道在 SO 上已经有类似的问题,但我找不到解决我遇到的问题的问题。我正在尝试制作一种将中缀表示法表达式转换为后缀表示法的方法,同时实现运算符的优先级以获得正确的输出。我用常用的方法(push、pop、peek 等)制作了自己的堆栈类,它工作得非常好。我的问题是,对于更复杂的表达式,例如 A-(B+C^D^C)/D*B ,我得到了错误的输出。转换的结果应该是 ABCDC^^+D/B*- 而我不断得到 ABCDC^^+D/-B

这是我的方法:

如果您需要任何组件方法,请告诉我。非常感谢任何帮助!

0 投票
2 回答
897 浏览

algorithm - 短路前缀布尔表达式

我有一堆用前缀表示法(也称为波兰表示法)编写的布尔表达式。这种格式的嵌套表达式很容易计算(参见维基百科文章中的算法)。

但是,Wikipedia 页面上给出的算法不会进行短路(当它评估 时and f() g(),它不会跳过g()iff()为 false 的评估)。有没有办法修改算法以包括短路?