前缀表达式求值
中缀转前缀
- 初始化两个栈:运算符栈s1 , 储存中间结果的栈s2
- 从右往左扫描
- 遇到操作数压入s2
- 遇到运算符,与s1栈顶运算符比较优先级
- 如果s1为空,或栈顶运算符为 ")" ,入栈
- 优先级比栈顶运算符高或者相等,入栈s1
- 否则,s1栈顶运算符弹出并压入s2
 
- 遇到括号时
- ")",入栈s1
- "(",依次弹出s1栈顶的运算符,压入s2,直到遇到")",丢弃括号
 
- 重复,将s1剩余的运算符依次弹出并压入s2
- 依次弹出s2中的元素并输出
后缀表达式求值
中缀转后缀
- 初始化两个栈:运算符栈1,储存中间结果的栈s2
- 从左往右扫描中缀表达式s
- 遇到操作数压入s2
- 遇到运算符时,比较其与s1栈顶运算符的优先级
- 如果s1为空,或栈顶运算符为“(”,入栈
- 优先级比栈顶运算符高(没有相等),入栈s1
- 否则,s1栈顶运算符弹出并压入s2
 
 
- 遇到括号时
- "(",入栈
- ")",依次弹出s1栈顶的运算符,压入s2,直到遇到")",丢弃括号
 
- 重复,将s1剩余的运算符依次弹出并压入s2
- 依次弹出s2中的元素并输出
 
             
            posted @ 
2022-09-08 17:43 
你在学什么 
阅读(
140) 
评论() 
 
收藏 
举报