Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шпора.Дискретна..docx
Скачиваний:
31
Добавлен:
16.09.2019
Размер:
101.25 Кб
Скачать

6.Інфіксна форма запису.

Надзвичайно поширене застосування в інформатиці обходу дерев – це співставлення виразам (арифметичним, логічним тощо) дерев, та побудова на цій основі різних форм запису виразів.

Суть справи зручно пояснити на прикладі. Розглянемо арифметичний вираз: (a+b/c)*(d-e*f). Зобразимо його у вигляді дерева. Обійдемо це дерево, виписуючи символи у вершинах у тому порядку, в якому вони зустрічаються при заданому способі обходу. У разі обходу у внутрішньому порядку – інфіксний запис (поки що без дужок, необхідний для визначення порядку операцій): a+b/c*d-e*f. Без дужок інфіксна форма запису неоднозначна: один запис може відповідати різним деревам. Щоб уникнути неоднозначності інфіксної форми, використовують круглі дужки кожного разу, коли зустрічають операцію. Повністю «одужкований» вираз отриманий у разі обходу дерева у внутрішньому порядку, називають інфіксною формою запису. Інфіксна форма запису є незручною. На практиці використовують префіксну та постфіксну форми запису, оскільки вони однозначно відповідають виразу і не використовують дужок.

7. Префіксна форма запису виразів (прямий польський запис).

На практиці використовується префіксна і постфіксна форми запису оскільки вони однозначно відповідають виразу і не використовують дужок. (польські записи). Прямий польський запис відповідає обходу дерева зверху вниз (префіксна). 1) Вівідати корінь. 2) відвідати праве піддерево. 3) відвідати ліве піддерево.

Правило обчислення значення виразу у прямому польському записі:

Для обчислення значення виразу в прямому польському записі його читають справа наліво і знаходять 2 операнди разом із знаком операції, який їм передує. Ці операнди та знак операції вилучають із запису, виконують операцію, а її результат записують на місце вилучених символів.

Розглянемо арифметичний вираз: (a+b/c)*(d-e*f). Зобразимо його у вигляді дерева. Обійдемо це дерево, виписуючи символи у вершинах у тому порядку, в якому вони зустрічаються при заданому способі обходу. У разі обходу в прямому польському записі : *+a/bc-d*ef.

Зазначимо, що оскільки польські записи однозначні та можуть бути легко обчислені без сканування назад і вперед, то їх широко використовують у комп’ютерних науках.

8. Постфіксна форма запису виразів. (обернений польський запис).

На практиці використовують префіксну та постфіксну форму запису, оскільки вони однозначно відповідають виразу і не використовують дужок. (польські записи). Обернений польський запис відповідає обходу дерева знизу вверх (постфіксна). 1) Відвідати ліве піддерево, 2) Відвідати праве піддерево, 3) Відвідати корінь.

Розглянемо арифметичний вираз: (a+b/c)*(d-e*f). Зобразимо його у вигляді дерева. Обійдемо це дерево, виписуючи символи у вершинах у тому порядку, в якому вони зустрічаються при заданому способі обходу. У разу обходу в зворотньому порядку – постфіксний або обернений польський запис: abc/+def*-*.

Для обчислення значення виразу в зворотньому польському записі його читають зліва направо і виділяють два операнди разом із знаком операції після них. Ці операнди та знак операції вилучають із запису, виконують операцію, а її результат записують на місце вилучення символів.

Зазначимо, що оскільки польські записи однозначні та можуть бути легко обчислені без сканування назад і вперед, то їх широко використовують у комп’ютерних науках.