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 棧 空...