- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要为调车场算法编写 Java 代码,我收到一个字符串,将其放入队列并开始评估。我得到了 Node、Stack、Queue 的类,它们应该可以正常工作。我的平衡方法是这样的...
public boolean balancear (Cola infijo) {
balance=infijo;
int balanceado=0;
char parentesis;
while (!balance.isEmpty()) {
parentesis=balance.pop();
if (parentesis=='(')
balanceado++;
else if (parentesis==')')
balanceado--;
}
return balanceado==0;
}
package expresionpolaca;
public class Postfijo {
Pila operadores = new Pila();
Cola infijo = new Cola ();
Cola postfijo = new Cola ();
Herramientas evaluador;
StringBuilder salida = new StringBuilder();
int re;
public Postfijo (String expresion) {
for (int i = 0; i < expresion.length() ; i++) {
infijo.push(expresion.charAt(i));
}
}
public String Convertir () {
evaluador.balancear(infijo); // I get NullPointerException Right HERE
if (evaluador.balancear(infijo)) { // I get NullPointerException Right HERE
while (!infijo.isEmpty()) {
char tmp=infijo.pop();
if (Character.isLetterOrDigit(tmp)) {
postfijo.push(tmp);
}
else {
switch (tmp) {
case '(':
operadores.push(tmp);
break;
case ')':
do {
tmp=operadores.pop();
if (tmp!='(') postfijo.push(tmp);
} while(tmp!='(');
operadores.pop();
break;
default:
if (operadores.sneak()=='(') operadores.push(tmp);
else while (evaluador.prioridad(tmp)>evaluador.prioridad(operadores.sneak())||operadores.sneak()!='('||operadores.isEmpty()==false) {
postfijo.push(operadores.pop());
}
break;
}
}
}
while (!operadores.isEmpty()) postfijo.push(operadores.pop());
}
else return "No balanceada";
while (!postfijo.isEmpty()) {
salida.append(postfijo.pop());
}
return salida.toString();
}
}
最佳答案
你永远不会初始化evaluador
,你只是声明它。在使用之前将其初始化为适当的值。
关于java - 为什么我在此 Infix to Postfix 程序代码上收到 NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12546072/
我在玩infixr , infixl和 infix声明。我明白了infixr和 infixl作品: -- Test expression: 40 +++ 20 +++ 50 +++ 10 * 10 -
如何将负数从中缀转换为后缀? 假设我有一个表达式 a = - b - (-c-d) 在我读到的某些地方,您可以将负数归为一类,例如 a = (-b) - (-c-d) 但在这里,如果我这样做,我会在后
我想知道是否有办法使用 2 个堆栈一次性解决中缀表达式?堆栈可以一个用于运算符,另一个用于操作数... shunt-yard算法求解的标准方法是将中缀表达式转换为后缀表达式(反向波兰)然后求解。我不想
我想知道是否有一种方法可以使用 2 个堆栈一次解决中缀表达式?堆栈可以是一个用于运算符,另一个用于操作数... shunt-yard算法求解的标准方法是将中缀表达式转换为后缀(逆向抛光),然后求解。我
我正在阅读 advanced operators swift 。 基本功能: func add(a: Unicorn, b: Unicorn) -> Unicorn { return a + b }
我在使用 toString() 方法并打印括号时遇到问题。在我的中缀表示法中。例如,现在如果我输入 12+3* 它将打印出 1 + 2 * 3。我希望它打印出 ((1+2) *3)。 另外,我希望在输
这是我尝试编写一个程序,可以将任何中缀格式的表达式转换为后缀格式。我将 -1 分配给顶部以指示堆栈为空。当push时,top增加,当pop时,top减少。但是,当我输入 a+b 时,输出只给出 ab
我正在使用 MathNet 并尝试将 2x^2 + x 解析为 epression using Infix.Print(Infix.ParseOrUndefined("2x^2 + x")); 但它返
我正在编写一个中缀计算器,它执行 5*(2+1) 等运算。我的代码中有一个我无法识别的错误。我写了一个最小的代码来展示这个问题: #include #include struct x{ d
这里我有一个使用 Stack 将 Infix 转换为 Postfix 的代码 代码编译没有错误,但我的问题是当我输入任何中缀时,例如 A+B,我得到一个没有运算符或括号的 AB 后缀,我无法解决这个问
我昨晚问了一个关于计算机科学类(class)的问题,我必须在其中将中缀转换为后缀表示法并进行评估。我能够调试它并使其正常工作(某种程度上),但是,对于某些表达式,我仍然会得到奇怪的输出。 它适用于基本
我的任务是编写一个应用程序(不幸的是在 C 上),它读取中缀表示法(带有变量、一元和二元运算符)的表达式并将其存储在内存中,然后对其求值。此外,还应检查正确性。 例如: 3*(A+B)-(-2-78)
假设您有一个巨大的数据缓存,需要通过 4 种方式进行搜索: 完全匹配 前缀% %后缀 %中缀% 我正在使用 Trie对于前 3 种类型的搜索,但除了对大量元素的顺序处理之外,我不知道如何处理第四种类型
我读了一本书,在示例程序中使用了 infix、infixr 和 infixl。我想知道有什么区别。我猜测 infixr 从右到左执行操作,反之亦然。 最佳答案 是的,r/l 表示结合性。如果没有测试,
我遇到了流行data.table包和一件事特别引起了我的兴趣。它有一个就地赋值运算符 := 这在基础 R 中没有定义。事实上,如果你没有加载 data.table包,如果您尝试使用它(例如, a :=
我正在阅读A Gentle Introduction to Haskell (这不是那么温和)并且它重复使用 : 运算符,而没有直接解释它的作用。 那么,它到底有什么作用呢? 最佳答案 : 是“前置”
这个问题已经有答案了: Handling parenthesis while converting infix expressions to postfix expressions (2 个回答) 已
我想包含连字符的单词,例如:长期、自尊等等,作为 Spacy 中的单个标记。在 StackOverflow 上查看了一些类似的帖子后,Github ,其 documentation和 elsewher
我想使用 ** 重载指数函数。如果我使用类似“^”的东西,我会工作,但 python 的做法是 ** 我想将它与 Swift 一起使用。有什么办法吗? error: Operator implemen
尝试使用中缀运算符,我对以下内容感到惊讶: let (>~~~) = function null -> String.Empty | s -> s // compiles fine, see scr
我是一名优秀的程序员,十分优秀!