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

Посмотрим порядок приоритета операторов

1. ‘+’ or ‘-’

2. ‘*’ or ‘/’

3. ‘^’

Ниже приведены правила, которые должны применяться для преобразования

  • Если символ равен ‘( ’{левые скобки} , поместите операторы в стек независимо от приоритета операторов, которые оставлены для ‘(’ .
  • › Если символ ‘)’ {правые круглые скобки} , извлеките все операторы из стека и вставьте их в постфиксное выражение, пока он не достигнет ‘(’ в стеке.
  • Не вставляйте ‘(’ или ‘)’ в выражение.
  • Если приоритет символа больше, чем приоритет оператора сверху, поместите его в стек.
  • Если приоритет символа меньше или равен приоритету оператора в верхних элементах, извлекайте операторы до тех пор, пока приоритет символа не станет больше, чем приоритет верхнего уровня, а затем поместите символ в стек.
  • Выскакивающие операторы должны быть вставлены в постфикс соответственно тому порядку, в котором они выскочили.

Алгоритм преобразования инфикса в постфикс:

  1. Начинать
  2. Прочитайте инфиксное выражение.
  3. Проверка посимвольно в инфиксном выражении.
  4. Если символ представляет собой алфавит или цифру, вставьте его непосредственно в постфиксное выражение.
  5. Если символ ‘(’ , поместите оператор в стек.
  6. Если символ «+» или «-», или «*», или «/», или «^», проверьте приоритет символа и приоритет верхнего элемента в стеке.
  7. Если приоритет символа больше приоритета верхнего элемента, нажмите символ .
  8. В противном случае выталкивайте операторы непрерывно, пока приоритет символа не станет больше, чем приоритет верхнего элемента, а затем поместите символ в стек.
  9. Выдвинутые элементы должны быть вставлены в постфиксное выражение.
  10. Продолжайте описанный выше процесс, пока указатель не достигнет последнего символа.
  11. Извлеките все оставшиеся операторы из стека и вставьте в постфикс.
  12. Напишите постфикс.
  13. Останавливаться.

Вышеизложенный алгоритмический подход. Теперь мы увидим программный подход:

C:

Это все о преобразовании инфиксного выражения в постфиксное выражение.

В следующем рассказе мы увидим преобразование инфиксного выражения в префиксное выражение.

Спасибо.