从中缀表达式创建后缀表达式。






2.67/5 (14投票s)
2006 年 8 月 20 日
2分钟阅读

65224

874
本文介绍了如何从中缀表达式创建后缀表达式。
引言
Ali reza zareian。
这是一个简单的程序,用于从中缀表达式创建后缀表达式。什么是中缀表达式?
(a+b)/d 就是一个简单的例子。中缀表达式在数学中很常见。这意味着当你想计算它时,你必须
首先将 a 与 b 相加,然后除以 d。
如果我们将这个表达式转换为后缀表达式。我们得到 ab+d/。
后缀表达式有什么用?
首先,我们不需要括号。其次,我们可以编写一个程序来计算这个表达式,这比中缀表达式更容易。
这个程序是什么?
这个程序使用一个简单的算法将中缀表达式转换为后缀表达式。只需看例子
在开始之前,我应该说我在这个程序中使用了堆栈。
中缀表达式 = (a+b)/d
输入 堆栈 输出
( (
a ( a
+ (+ a
b (+ ab
) ab+
/ / ab+
d ab+d
没有 空 ab+d/
这个程序的主要方法是什么!?
1) private int isOperand(char chrTemp);
2) private int isOperator(char chrTemp);
3) public string createPrifex();
1) isOperand 检查字符是否在这个集合中。{'*','/','+','-','^','('}
如果为真,我们将这个字符添加到堆栈中。
2) isOperator 检查字符是否在这个集合中。{'*','/','+','-','^'}
这个方法检查堆栈,并弹出除了 '(' 之外的所有运算符。
3) createPrifix 方法使用 isOperand 和 isOperator 从中缀表达式创建后缀表达式。
伪代码
对于(第一个中缀字符)到最后一个字符
{
如果(是操作数)添加到堆栈
否则
如果(它是 ')')弹出堆栈并将其发送到输出
否则将其他字符发送到输出
}
}