我不確定是否正確執行此操作。我試圖綴式轉化爲後綴式,如:使用堆棧中綴到Postfix
(3 + 4) * 2
在後綴爲:
4 3 + 2 *
我想如果可以做到這一切在一個方法。
現在我得到一個arrayoutofbounds錯誤,所以我彈出錯誤的地方或東西。
以下是infixtopostfix方法。
public void InfixToPostfix(String f) {
Stacked postfix = new Stacked(100);
Stacked op = new Stacked(100);
char c;
String fix = f;
//String out = "";
int out = 0;
for (int i = 0; i < fix.length(); i++) {
c = fix.charAt(i);
if (c != '+' || c != '*' || c != '-' || c != '/' || c != '(' || c != ')') {
// out += c;
postfix.push(c);
}
else if (c == '+' || c == '*' || c == '-' || c == '/') {
if (c != ')') {
op.push(c);
} else {
out = (char) op.pop();
s.push(out);
}
out = (char) op.pop();
System.out.println("THE POSTFIX = " + out)
}
}
}
除非這是家庭作業,或者您應該/想要拿出你自己的解決方案,你應該看看分流碼算法。 – delnan
我會讓一個局部變量。當你用調試器遍歷你的代碼時,你看到了什麼?我會找到顯示問題的最簡單的表達方式。 –
用輸入字符串,一張紙和一支鉛筆玩電腦......當你敲擊輸入的前幾個字符時發生了什麼?這是你真正想要的嗎? –