я нуждаюсь алгоритмы это проверит, является ли данное выражение выражением инфикса, постфикса или префикса.
Я попробовал метод, проверив первые или последние 2 условия строки, например.
+AB, если в самом первом индексе строки есть оператор, то его префикс
AB +, если в самом последнем индексе строки есть оператор, то его
постфиксиначе это инфикс.
Но это не кажется уместным, поэтому предложите мне лучший алгоритм.
Обратите внимание, что (3) включает в себя случай, который вы упомянули в комментариях к выражению в скобках. В префиксе или постфиксе нет скобок. Вот почему они существуют. (3) также включает в себя вырожденный случай одного члена, например, 1
, но в этом случае не имеет значения, как вы анализируете это.
Вы можете обнаружить недопустимое выражение, только проанализировав его полностью.
Если вы собираетесь разрешить унарные операторы в инфиксной нотации, я могу только предложить вам попробовать все три анализа и остановиться, когда вы добьетесь успеха. Очень возможно, что это стратегия, которой вы должны следовать в любом случае.
Других решений пока нет …