上个星期的作业,现在才改好。。。。。
基本思路:
当我们从键盘上输入一串字符,比如1+(2+3),建立两个栈,一个存放运算符的栈toperator,一个存放操作数number,依次遍历。
遇到操作数就依次存放到操作栈里;
遇到运算符时,优先级高的就直接压进运算符栈里,优先级低的就依次弹出操作栈中的两个值与运算符进行计算,然后把计算的值再次压进操作数栈里。其中有括号的情况,左括号的直接压进,当右括号遇到左括号的时候就直接弹出左括号。
程序:
类模块:
<
上个星期的作业,现在才改好。。。。。
基本思路:
当我们从键盘上输入一串字符,比如1+(2+3),建立两个栈,一个存放运算符的栈toperator,一个存放操作数number,依次遍历。
遇到操作数就依次存放到操作栈里;
遇到运算符时,优先级高的就直接压进运算符栈里,优先级低的就依次弹出操作栈中的两个值与运算符进行计算,然后把计算的值再次压进操作数栈里。其中有括号的情况,左括号的直接压进,当右括号遇到左括号的时候就直接弹出左括号。
程序:
类模块:
<