Как я могу проверить, является ли данное выражение инфиксным выражением, постфиксным выражением или префиксным выражением?

я нуждаюсь алгоритмы это проверит, является ли данное выражение выражением инфикса, постфикса или префикса.
Я попробовал метод, проверив первые или последние 2 условия строки, например.

+AB, если в самом первом индексе строки есть оператор, то его префикс

AB +, если в самом последнем индексе строки есть оператор, то его
постфикс

иначе это инфикс.

Но это не кажется уместным, поэтому предложите мне лучший алгоритм.

2

Решение

  1. Если он начинается с действительного инфиксного оператора, это инфиксный, если только вы не собираетесь разрешать унарные операторы.
  2. Если он заканчивается допустимым оператором postfix, это postfix.
  3. В противном случае он либо инфиксный, либо недействительный.

Обратите внимание, что (3) включает в себя случай, который вы упомянули в комментариях к выражению в скобках. В префиксе или постфиксе нет скобок. Вот почему они существуют. (3) также включает в себя вырожденный случай одного члена, например, 1, но в этом случае не имеет значения, как вы анализируете это.

Вы можете обнаружить недопустимое выражение, только проанализировав его полностью.

Если вы собираетесь разрешить унарные операторы в инфиксной нотации, я могу только предложить вам попробовать все три анализа и остановиться, когда вы добьетесь успеха. Очень возможно, что это стратегия, которой вы должны следовать в любом случае.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]