C语言 任意表达式求值.(栈的应用

日期:2017-06-13 20:04:50 人气:1

C语言 任意表达式求值.(栈的应用

表达式求值,关键是实现数学运算优先法则。有两个栈,一个是数据栈,一个是运算符号栈。将表达式数学顺序中在前面,但是运算必须后置的数据和运算符,必须压入栈中保存。等到计算时机到了,再计算。 一种简单的做法,先行将表达式分析成逆波兰式,压入栈中;然后从栈顶开始,依次计算。 比如: 5+6x3x(5-3) 数据栈:5,6,3,5,3, 符号栈:+xx- 计算:5-3=2,结果压入栈中; 5,6,3,2 +xx 3x2=6 5,6,6 +x 6x6=36 5,36 + 5+36=41
    A+
热门评论