Префиксная и постфиксная записи

В префиксной нотации каждый знак операции ставится перед своими операндами, а в постфиксной – после. В этом и состоит их основное отличие от обычной (инфиксной) записи, когда операция проставляется между операндами. Например, инфиксное выражение a+b в префиксной нотации примет вид +ab, а в постфиксной ab+.

(a+b)*(c+d)

в префиксной записи будет выглядеть

*+ab+cd

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

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

1. сохранению идентификатора, когда он встретится при чтении слева направо;

2. помещению в стек знака операции;

3. в момент встречи конца выражения выдача из стека знака операции, который находится на вершине.

Другой метод в получении постфиксного выражения из выражения, представленного в виде бинарного дерева. Например, выражение

(a+b)*c+d

представляется в виде бинарного дерева как на рисунке.

Чтобы получить постфиксное выражение используют порядок обхода, определенный Кнутом:

1. обход левого поддерева снизу:

2. обход правого поддерева снизу:

3. посещение корня.

что дает в результате

ab+c*d+

 








Дата добавления: 2015-07-30; просмотров: 4444;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.006 сек.