Используя стек, мы преобразуем инфиксное выражение в постфиксное выражение. Его очень легко преобразовать, если символ является операндом, мы вставим его непосредственно в постфиксное выражение. Если символ является оператором или скобками, мы поместим их в стек и в соответствии с их приоритетом и правилами вставим в постфиксное выражение.
Посмотрим порядок приоритета операторов
1. ‘+’ or ‘-’
2. ‘*’ or ‘/’
3. ‘^’
Ниже приведены правила, которые должны применяться для преобразования
- Если символ равен ‘( ’{левые скобки} , поместите операторы в стек независимо от приоритета операторов, которые оставлены для ‘(’ .
- › Если символ ‘)’ {правые круглые скобки} , извлеките все операторы из стека и вставьте их в постфиксное выражение, пока он не достигнет ‘(’ в стеке.
- Не вставляйте ‘(’ или ‘)’ в выражение.
- Если приоритет символа больше, чем приоритет оператора сверху, поместите его в стек.
- Если приоритет символа меньше или равен приоритету оператора в верхних элементах, извлекайте операторы до тех пор, пока приоритет символа не станет больше, чем приоритет верхнего уровня, а затем поместите символ в стек.
- Выскакивающие операторы должны быть вставлены в постфикс соответственно тому порядку, в котором они выскочили.
Алгоритм преобразования инфикса в постфикс:
- Начинать
- Прочитайте инфиксное выражение.
- Проверка посимвольно в инфиксном выражении.
- Если символ представляет собой алфавит или цифру, вставьте его непосредственно в постфиксное выражение.
- Если символ ‘(’ , поместите оператор в стек.
- Если символ «+» или «-», или «*», или «/», или «^», проверьте приоритет символа и приоритет верхнего элемента в стеке.
- Если приоритет символа больше приоритета верхнего элемента, нажмите символ .
- В противном случае выталкивайте операторы непрерывно, пока приоритет символа не станет больше, чем приоритет верхнего элемента, а затем поместите символ в стек.
- Выдвинутые элементы должны быть вставлены в постфиксное выражение.
- Продолжайте описанный выше процесс, пока указатель не достигнет последнего символа.
- Извлеките все оставшиеся операторы из стека и вставьте в постфикс.
- Напишите постфикс.
- Останавливаться.
Вышеизложенный алгоритмический подход. Теперь мы увидим программный подход:
C:
Это все о преобразовании инфиксного выражения в постфиксное выражение.
В следующем рассказе мы увидим преобразование инфиксного выражения в префиксное выражение.
Спасибо.