如何在c#中将中缀方程转换为后缀方程
本文关键字:方程 转换 后缀 中缀 | 更新日期: 2023-09-27 18:13:19
我在谷歌上找到了很多算法,但是,我找不到将中缀转换为后缀的可运行算法。如何在c#上转换中缀方程到后缀方程?请帮助…
这是一个很棒的学习编程的小项目。有两个部分:将代码解析成树,然后将树作为后缀打印出来。每个树节点是一个有两个子节点的算子:4 + (5/6)
以+
为根节点,子节点分别为4和5/6。当您深入观察5/6
节点时,您会发现父节点有两个子节点:父节点是/
,子节点是5
和6
。
Parse(stuff to the left)
和Parse(stuff to the right)
。您需要特别注意减号(这是一个一元运算符,因此不是严格意义上的中缀)。我建议将减号视为特例:-4
应解析为-4
,而不是具有一个子4
的减号节点。当你解析这个方程时,所有的内部节点都应该是运算符,所有的叶子节点都应该是数字。
解析后,打印出来。对于根节点,print(node)
将打印"(",左子节点(递归打印),右子节点(递归打印),操作符,然后用")"关闭表达式(节点)。
我手边没有这个算法的链接,但如果你自己实现它,你会增长得更多。