上传者: simplebelief
|
上传时间: 2021-10-07 15:51:47
|
文件大小: 55KB
|
文件类型: -
在程序设计中,可能碰到需要对字符串数学表达式求值的问题,常用的方法是解析表达式,生成二叉树,然后进行计算。编译器就是使用这种方法来解析程序中的表达式的。这种方法实现起来有点难度,需要考虑运算符的优先级,括号的配对,堆栈的使用等等。我们正常情况下看到的数学表达式如果用二叉树遍历的话,恰好是中序遍历,故叫做中序表达式。除此之外,还有前序表达式,后序表达式。如:a+b+c(中序),++abc(前序),ab+c+(后序),如果表达式含有×,/,()等就更复杂了。
后缀表达式也称逆波兰表达式 因其使表达式求值变得轻松,所以被普遍使用。
程序解析字符串表达式,将其转换为逆波兰式,然后生成表达式二叉树,最后计算表达式值。