问题标签 [prefix-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 投票
0 回答
115 浏览

c - 将中缀表达式转换为前缀一的问题

在这里,我将中缀表达式转换为前缀表达式。

对于某些测试用例,我的结果是完美的。

但是对于某些测试用例,我得到的输出根据某些站点是正确的,但根据其他站点是错误的。所以我对我的代码是否正确感到两难。

例如,如果中缀表达式是:

然后根据我的代码输出是:

但有些网站提到输出为:

对于相同的输入。

0 投票
1 回答
117 浏览

java - Match two nested logical AND OR expression tree objects

I need to compare a given logical expression with another in java, to identify if both are the same. For example, consider an expression as ((a&b)&(c|d)&(e&f)) and other as ((a&e)&(c|d)&(b&f)), they both are equivalent. Consider (a&(f&(b&e))&(c|d)): this is also equivalent. Furthermore, this expressions can be nested. I thought of converting this to prefix notations, but can't find a proper way through. Expressions is a recursive class object with expression-type as AND/OR and an array of it's child expressions ex. for above first expression:

Is there any way to simplify expressions and compare them?

0 投票
2 回答
63 浏览

data-structures - 堆栈和算术评估

堆栈被认为是算术评估的理想数据结构。为什么会这样?
为什么我们甚至需要一个用于算术评估的数据结构?我已经研究了一段时间,但仍然感到困惑。我不明白前缀和后缀表达式的用途是什么,因为中缀表达式的可读性很强。

0 投票
1 回答
60 浏览

javascript - JS 中的双 '+' 符号与 !NaN 混淆

为波兰表示法工作,我正在添加一种方法来区分我得到的字符串是否是数字,使用 isNaN 函数。这可以正常工作,直到您将 ++ 添加到字符串中。

'* 1 2 30 +'它的输出按预期工作[1,2,30]但是,当我开始在运算符周围移动时,当我在数组的开头得到一个 NaN 时,[NaN, 1,2,30]这令人难以置信。有关如何解决此问题或其他解决方法的任何想法?

0 投票
0 回答
56 浏览

python - 命题和时间逻辑表达式的前缀/波兰符号?

我有命题和时间逻辑表达式,例如:

我想用前缀表示法来表示它们,即“phi1 U phi2”将表示为“U phi1 phi2”。关于使用哪种数据类型来表示“U phi1 phi2”的任何想法?我正在使用 python,我知道我可以将它表示为一个字符串,但我想知道是否有更有效的方法,因为我需要单独访问表达式的每个术语。还尝试将其表示为("U","phi1","phi2")可以正常工作,但对于更复杂的公式,它会在“()”上变得很重。

提前致谢

0 投票
1 回答
82 浏览

c - 如何在c中反向书写

这是我的第一个问题,所以请原谅非技术语言
,我正在制作一个将中缀转换为前缀和后缀的程序。我对正在工作的后缀做了中缀。现在,当我想中缀前缀时,我们需要反转表达式。所以我想从相反的方向阅读中缀。

以上是后缀中缀的一部分,其中e 是扫描字符串的指针。在 pre 的中缀中,我计划将 e++ 替换为 e-- 但正如在第一行中我们看到它直接打印 char 所以我需要反转方向
例如。
咩 +

0 投票
1 回答
173 浏览

java - 为什么流行的编程语言如 c、c++、java、python、PHP 不支持后缀(反向波兰表示法)或前缀表达式?

注意:- 我不是在谈论增量和减量运算符。我说的是前缀和后缀表达式。

python中的示例:-

我知道 python 不支持前缀或后缀表达式。但是想象一下如果python支持后缀表达式,我可以这样写函数

我在此链接中读到评估后缀表达式比中缀表达式更快

  1. 计算中缀表达式所需的时间是 O(n^2) -> reason - 需要找到具有最高优先级的运算符。
  2. 评估后缀表达式所需的时间是 O(n) -> 原因 - 无需查找运算符的优先级。我们只需要从左到右进行评估。

如果是这种情况,那么为什么流行的编程语言(如 C、C++、Java、Python、Ruby 或 PHP)不原生支持后缀表达式呢?

0 投票
0 回答
13 浏览

debugging - 如何修改 Arm 装配中的字符串

我无法弄清楚如何在中缀表达式中添加空格,以便像 3+5 这样的东西会变成 3+5。我不断收到分段错误,我什至无法确定错误来自哪一行,因为由于某种原因,我也无法打印出任何内容。这是我的代码供参考:

0 投票
1 回答
40 浏览

c - 在中缀到前缀的程序中的 ac 函数中未返回反转字符串

下面是中缀到前缀转换的代码。我的代码工作正常,直到使用reverse复制后不打印任何字符串的函数。我尝试使用for循环复制反转的字符串,但结果保持不变,程序终止而没有给出正确的输出。函数中的打印语句在reverse复制之前有效,但在复制之后无效。谁能让我知道问题出在哪里?