问题标签 [infix-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.
c++ - 函数中返回语句的段错误
我的程序应该将提示从中缀转换为后缀。到目前为止,通过调试器和其他各种方法,我已经找到了我的段错误的确切点,但不明白为什么。
这是我的代码:
这是 itop.h:
这是我的 itop.cpp 文件:
这是 main.cpp:
该函数在
问题就在这里:
特别是在返回 num 之前,我收到“分段错误(核心转储)”错误消息。我使用过 gdb,我所知道的是,在“检查 + 或 -”之后,我看到“$1 = 2”。我不太确定这意味着什么,但这是我想要返回的。
感谢您的帮助。
java - 使用堆栈和运算符优先级对后缀进行中缀
我知道在 SO 上已经有类似的问题,但我找不到解决我遇到的问题的问题。我正在尝试制作一种将中缀表示法表达式转换为后缀表示法的方法,同时实现运算符的优先级以获得正确的输出。我用常用的方法(push、pop、peek 等)制作了自己的堆栈类,它工作得非常好。我的问题是,对于更复杂的表达式,例如 A-(B+C^D^C)/D*B ,我得到了错误的输出。转换的结果应该是 ABCDC^^+D/B*- 而我不断得到 ABCDC^^+D/-B
这是我的方法:
如果您需要任何组件方法,请告诉我。非常感谢任何帮助!
complexity-theory - 前缀时间和空间复杂度的中缀
我一直在编写一个 Java 程序,使用操作数堆栈和运算符堆栈从中缀表示法转换为前缀表示法。我已经根据此处最佳答案中的伪代码实现了一个工作转换器:
但是,我现在正在尝试计算上述算法的时间和空间复杂度。
我认为空间复杂度必须是 O(n),因为我们只有两个堆栈来存储它们之间共享的输入。
考虑到时间复杂度,我不完全确定,是不是 O(n^2) 因为必须将每个子部分从中缀转换为前缀?我不太确定这部分。
基本上我的问题是:我的空间复杂度结果是否正确,算法的时间复杂度是多少?
非常感谢!
编辑: 这是算法的伪代码:
parsing - ANTLR 表达式列表冲突
这是简单嵌套表达式的基本结构...
如果我想创建这些表达式的列表,我可以使用以下...
这里我们使用“,”作为分隔符。
我希望能够构建一个没有任何分隔符的表达式列表。
因此,如果我有字符串4 5 2+3 1 6
,我希望能够将其解释为(4) (5) ^(+ 2 3) (1) (6)
问题是两者都4
具有2+3
相同的第一个符号(INT),所以我有冲突。我试图弄清楚如何解决这个问题。
编辑
我几乎想通了,只是在为某种条件想出正确的重写时遇到了麻烦……
这将解析1+2+3++4+5+
为^(+ ^(+ 1 2) 3) (+) (+) ^(+ 4 5) (+)
,这就是我想要的。
现在我正在尝试完成我的重写规则,以便++1+2
将其解析为(+) (+) ^(+ 1 2)
. 总的来说,我想要一个标记列表并找到所有中缀表达式,并将其余的保留为列表。
java - InFix to Prefix 方法类
我试图查明我的前缀计算器类中的错误,但我在这样做时遇到了麻烦。
预期的输出应该是这样的: InFix: "2+4" (例如) PostFix: "24+" PreFix: " 24" (这里是错误)
这是计算前缀的类:
如果有人对如何改进我的代码或纠正此错误有任何建议,我们将不胜感激!
提前谢谢。
algorithm - 从中缀更改为后缀有什么好处?
我今天看书了。它介绍了从中缀到后缀的算法。有什么好处?提前致谢。
infix-notation - 如何使用堆栈在一次扫描中评估中缀表达式?
我想知道是否有一种方法可以使用 2 个堆栈一次性解决中缀表达式?堆栈可以是一个用于运算符,另一个用于操作数......
分流码算法求解的标准方法是将中缀表达式转换为后缀(反向抛光)然后求解。我不想先将表达式转换为后缀。
如果表达式是 like 2*3-(6+5)+8
,如何解决?
javascript - JavaScript。中缀到后缀
我是 JavaScript 的初学者。
此代码应该评估后缀表达式。但它不起作用。我认为代码非常合乎逻辑,我真的不知道它有什么问题。
如果有人可以帮助我,我将不胜感激!
c - 如何将中缀表达式转换为后缀表达式?
我正在尝试编写一个C
程序来将中缀表达式转换为后缀并使用输入的值进行计算。当我输入 (2+14)*5 时,我得到 (2 14) 5 * + 但它应该是 2 14 + 5 *。所以我的问题:
- 我哪里做错了?
- 如何更改代码以删除最后一个表单(后缀)的括号?
谢谢你的帮助。
arrays - 表达式必须有(指向)函数类型错误
我决定是时候完成我一周前开始的小中缀计算器了,但在我的评估函数中遇到了问题。我的 switch 语句似乎与我通过运算符结构处理数组的方式存在问题。我不完全确定我做错了什么。这不是我遇到的唯一错误,但我确信如果我解决了这个问题,那么其他问题应该更容易解决。显然我的代码不完整,但考虑到我到目前为止所拥有的东西,我是否走在正确的轨道上?