Представление выражений с помощью деревьев


С помощью деревьев можно представлять произвольные арифметические выражения. Каждому листу в таком дереве соответствует операнд, а каждому родительскому узлу √ операция. В общем случае дерево при этом может оказаться не бинарным.

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

Рис.. Представление арифметического выражения произвольного вида в виде дерева.

Рис. Представление арифметического выражения в виде бинарного дерева

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

Затем от листьев к корню производится выполнение операций. В процессе выполнения в узел операции записывается результат ее выполнения. В конце вычислений в корень будет записано значение, которое и будет являться результатом вычисления выражения.

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

Рис. Вычисление арифметического выражения с помощью бинарного дерева

Рис. Представление логического выражения в виде бинарного дерева

 

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

(a + b) * c - d / (e + f * g) .

Соответствующее бинарное дерево.

 

 

Рис. Бинарное дерево, представляющее

арифметическое выражение (a + b) * cd / (e + f * g)

 

Тогда три варианта обхода этого дерева порождают три известные формы записи арифметического выражения:

1) КЛП - префиксную запись

- * + a b c / d + e * f g ;

2) ЛКП - инфиксную запись (без скобок, необходимых для задания последовательности выполнения операций)

a + b * c - d / e + f * g ;

3) ЛПК - постфиксную запись

a b + c * d e f g * + / - .

 


 



Дата добавления: 2018-05-10; просмотров: 2941;


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

Воспользовавшись поиском можно найти нужную информацию на сайте.

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

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2024 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.007 сек.