如何在c#中将中缀方程转换为后缀方程

本文关键字:方程 转换 后缀 中缀 | 更新日期: 2023-09-27 18:13:19

我在谷歌上找到了很多算法,但是,我找不到将中缀转换为后缀的可运行算法。如何在c#上转换中缀方程到后缀方程?请帮助…

如何在c#中将中缀方程转换为后缀方程

这是一个很棒的学习编程的小项目。有两个部分:将代码解析成树,然后将树作为后缀打印出来。每个树节点是一个有两个子节点的算子:4 + (5/6)+为根节点,子节点分别为4和5/6。当您深入观察5/6节点时,您会发现父节点有两个子节点:父节点是/,子节点是56

解析是最难的部分。要解析表达式,请查看需要解析的内容,找到操作符,并注意操作符左边和右边的内容。操作符是节点,它有两个子节点:Parse(stuff to the left)Parse(stuff to the right)。您需要特别注意减号(这是一个一元运算符,因此不是严格意义上的中缀)。我建议将减号视为特例:-4应解析为-4,而不是具有一个子4的减号节点。当你解析这个方程时,所有的内部节点都应该是运算符,所有的叶子节点都应该是数字。

解析后,打印出来。对于根节点,print(node)将打印"(",左子节点(递归打印),右子节点(递归打印),操作符,然后用")"关闭表达式(节点)。

我手边没有这个算法的链接,但如果你自己实现它,你会增长得更多。