在这里以图文的形式展示表达式求值的全过程
取表达式1+2*3/4+5为例。
定义两个堆栈
对栈的操作遵守两点规则:1,运算符栈如果为空 当前读取的运算符直接入栈。2,如果运算符栈顶的运算符优先级低于当前读取的运算符,则当前运算符直接入栈
一:定义两个栈
二:读取表达式第二个运算符之前的内容,并入栈。
三:读取下一个运算符 "*", 并与栈顶元素比较。由于“*”的优先级高于栈顶元素ÿ
在这里以图文的形式展示表达式求值的全过程
取表达式1+2*3/4+5为例。
定义两个堆栈
对栈的操作遵守两点规则:1,运算符栈如果为空 当前读取的运算符直接入栈。2,如果运算符栈顶的运算符优先级低于当前读取的运算符,则当前运算符直接入栈
一:定义两个栈
二:读取表达式第二个运算符之前的内容,并入栈。
三:读取下一个运算符 "*", 并与栈顶元素比较。由于“*”的优先级高于栈顶元素ÿ