如何检查给定表达式是中缀表达式、后缀表达式还是前缀表达式?



我需要算法将检查给定表达式是否中缀,后缀或前缀表达式。我已经尝试了一种方法,通过检查字符串的第一个或最后两个术语,例如

+AB如果在字符串的第一个索引中有一个操作符,那么它是一个前缀

AB+如果在string对象的最后一个下标有操作符,则其一个后缀

否则为中缀

但是感觉不太合适,所以请建议我一个更好的算法。

  1. 如果它以一个有效的中缀操作符开头,它就是中缀,除非你允许使用一元操作符。
  2. 如果它以一个有效的后缀操作符结尾,它就是后缀。
  3. 否则为中缀或无效。

注意(3)包括你在括号内表达式注释中提到的情况。前缀和后缀中没有括号。这就是它们存在的原因。(3)还包括单个项的简并情况,例如1,但在这种情况下,如何解析它无关紧要。

只能通过完全解析来检测无效表达式。

如果你打算在中缀符号中允许一元操作符,我只能建议你尝试所有三种解析,当你获得成功时停止。这很可能是你应该遵循的策略。

检查字符串中的第一个元素。1-如果第一个元素是操作符,那么它肯定是前缀表达式2- else,检查第二个元素,如果是操作符,则确定为中缀3- else,它是确定的后缀

相关内容

最新更新