Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Представление арифметических выражений в польской записи




 

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

Рассмотрим некоторое выражение a + b. Для него возможны три формы представления:

a + b - обычная, или инфиксная запись;

a b + - польская, или постфиксная запись;

+ a b - префиксная запись.

Наиболее удобной для использования в трансляторах является польская запись, основные свойства которой состоят в следующем.

1. Операнды в польской записи следуют в том же порядке, что и в инфиксной форме.

2. Операторы в польской записи следуют в том порядке (слева направо), в ко­тором они должны выполняться при вычислении выра­жений.

3. Операторы в польской записи располагаются непосредственно за своими операндами.

4. При использовании польской записи выражений не требуются скобки.

Необходимозаметить, что такой вид записи впервые применил польский логик Я. Лукашевич.

Указанные формы записи могут быть получены посредством использования рекурсивных алгоритмов обхо­да дерева, соответствующего заданному выражению. Для получения префиксной формы записи дерево обходят сверху в порядке TLR:

1) корень или верхняя точка (Т) дерева;

2) обход сверху левого (L) поддерева в порядке TLR;

3) обход сверху правого (R) поддерева в порядке TLR.

При получении постфиксной формы (польской записи) дерево просматривают снизу в порядке LRT:

1) обход снизу левого (L) поддерева в порядке LRT;

2) обход снизу правого (R) поддерева в порядке LRT;

3) корень дерева (Т).

Порядок просмотра можно пояснить на примере дерева, которое соответствует выражению a + b и приведено на рис. 2. Если на­чать с корня или верхней точки (T) этого дерева и напечатать "+", затем перейти к левой (L) нижней вершине и напечатать " a ", а далее перейти опять в корень, спуститься вправо (R) и напеча­тать " b ", то получим обход дерева сверху в порядке TLR. Пос­ледовательность напечатанных символов + ab будет префиксной формой выражения а + b.

Обход снизу рассмотрим на примере дерева, показанного на рис. 1. Для просмотра снизу левого (L) поддерева начинают с са­мой левой вершины, помеченной операндом а, проходят снизу под­дерево с корнем, соответствующим оператору " - ", и получают запись ab-. Рис. 2. Варианты обхода дерева

Затем проходят поддерево с верхней точкой "*". В резуль­тате для левого поддерева получают следующий порядок прохождения вершин: ab-c *. Обход снизу правого (R) поддерева начинают с самой левой вершины этого поддерева, т.е. с вершины d. Затем проходят поддерево с корнем " ^ ". В итоге для правого поддерева получают запись def ^ /. Прохождение всего дерева снизу завер­шается в корневой вершине (T), помеченной оператором "+".

В ре­зультате получается последовательность операндов и операторов сле­дующего вида:

, (2)

которая представляет собой постфиксную форму (польскую запись) исходного выражения (1).

Прохождение этого же дерева сверху в порядке TLR позволяет получить пре­фиксную форму выражения (1):

.

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

 




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


Дата добавления: 2015-06-28; Просмотров: 656; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.013 сек.