9 中綴表示式轉成字尾表示式

2022-09-18 06:33:35 字數 1492 閱讀 1448

private static int add = 1;

private static int sub = 1;

private static int mul = 2;

private static int div = 2;

//寫乙個方法,返回對應的優先順序數字

public static int getvalue(string operation)

return result;

}

/*

* 1)從左至右掃瞄,將3和4壓入堆疊;

2)遇到+運算子,因此彈出4和3(4為棧頂元素,3為次頂元素),計算出3+4的值,得7,再將7入棧;

3)將5入棧;

4)接下來是×運算子,因此彈出5和7,計算出7×5=35,將35入棧;

5)將6入棧;

6)最後是-運算子,計算出35-6的值,即29,由此得出最終結果

*/public static int calculate(listls) else else if (item.equals("-")) else if (item.equals("*")) else if (item.equals("/")) else

//把res 入棧

stack.push("" + res);}}

//最後留在stack中的資料是運算結果

return integer.parseint(stack.pop());

}

public static listgetliststring(string suffixexpression) 

return list;

}

//  s="1+((2+3)×4)-5";

public static listtoinfixexpressionlist(string s) else

ls.add(str);

}}while(i < s.length());

return ls;//返回

}

public static listparsesuffixexpreesionlist(listls)  else if (item.equals("("))  else if (item.equals(")")) 

s1.pop();//!!! 將 ( 彈出 s1棧, 消除小括號

} else

//還需要將item壓入棧

s1.push(item);}}

//將s1中剩餘的運算子依次彈出並加入s2

while(s1.size() != 0)

return s2; //注意因為是存放到list, 因此按順序輸出就是對應的字尾表示式對應的list

}

public static void main(string args)

1003 中綴表示式轉字尾表示式

1003.中綴表示式轉字尾表示式 total 466accepted 89 time limit 1sec memory limit 256mb description 將中綴表示式 infix expression 轉換為字尾表示式 postfix expression 假設中綴表示式中的運算元均...

中綴表示式 字尾表示式

中綴表示式就是 a b 這樣的,運算子在兩個數的中間 字尾表示式就是 a b 這樣的,運算子在兩個數後面 再細分一下 中綴表示式 字尾表示式 a b c a b c a b c a b c a b c a b c a b c a b c a b c d e a c a b c d e a c emm...

中綴表示式 字尾表示式

數學表示式稱為中綴表示式,符合人的思考習慣 1 2 3運算子放在數字後面,符合計算機運算 123 遍歷中綴表示式中的數字和符號 左括號 入棧 運算符號 需要與棧頂符號進行優先順序比較 遍歷結束 將棧中所有符號彈出並輸出。例 中綴表示式 1 2 5 3 4 2 1 1 數字1直接輸出 結果 1 棧 空...