1.从头到尾读取中缀表达式中的每个对象,对不同对象按不同情况处理。
(1)运算数:直接输出
(2)左括号: 压入堆栈
(3)右括号:将栈顶的运算符弹出并输出,直到遇到左括号(出栈,不输出)
(4)运算符:
如优先级大于栈顶优先级,则把它压栈
如优先级小于栈顶运算符优先级,将栈顶运算符弹出并输出,在比较新的栈顶运算符优先级,直到该运算符优先级大于栈顶运算符优先级为止,并将该运算符压入栈。
(5)各对象处理完毕,则把堆栈中存留的运算符一并输出。
1.从头到尾读取中缀表达式中的每个对象,对不同对象按不同情况处理。
(1)运算数:直接输出
(2)左括号: 压入堆栈
(3)右括号:将栈顶的运算符弹出并输出,直到遇到左括号(出栈,不输出)
(4)运算符:
如优先级大于栈顶优先级,则把它压栈
如优先级小于栈顶运算符优先级,将栈顶运算符弹出并输出,在比较新的栈顶运算符优先级,直到该运算符优先级大于栈顶运算符优先级为止,并将该运算符压入栈。
(5)各对象处理完毕,则把堆栈中存留的运算符一并输出。