还是有一些小问题….懒得改了,但大体思路还是清晰的,首先定义一个运算符栈,一个数栈。
关于优先级,两个括号(,)优先级最低,其次是+、-,最高的是*、/
关于运算法则,打个比方,”(3+5*4)+3″这个串
首先遇到左括号,直接压入运算符栈,然后是3,直接压入数栈,然后遇到5,压入数栈,遇到*,将其压入运算符栈,遇到右括号,将运算符栈顶的*取出,取出两个数栈栈顶的数,进行乘法运算,将运算结果压入数栈,因为此时运算符栈顶仍不是左括号,取出栈顶的+号,拿出数栈栈顶的两个数,进行加法运算,并将结果压入