stringtranslate.com

Дерево двоичного выражения

Бинарное дерево выражений — это особый вид бинарного дерева, используемого для представления выражений . Два распространенных типа выражений, которые может представлять бинарное дерево выражений, — это алгебраические [1] и булевы . Эти деревья могут представлять выражения, содержащие как унарные , так и бинарные операторы. [1]

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

Построение дерева выражений

Пример

Входные данные в постфиксной нотации: ab + cde + * * Поскольку первые два символа являются операндами, создаются одноузловые деревья, а указатели на них помещаются в стек. Для удобства стек будет расти слева направо.

Стек растет слева направо

Следующий символ — «+». Он выталкивает два указателя на деревья, формируется новое дерево, а указатель на него помещается в стек.

Формирование нового дерева

Далее считываются c, d и e. Для каждого создается дерево из одного узла, и указатель на соответствующее дерево помещается в стек.

Создание одноузлового дерева

Продолжая, считывается «+», и он объединяет два последних дерева.

Объединение двух деревьев

Теперь считывается '*'. Последние два указателя дерева удаляются, и формируется новое дерево с '*' в качестве корня.

Формирование нового дерева с корнем

Наконец, считывается последний символ. Два дерева объединяются, и указатель на последнее дерево остается в стеке. [2]

Шаги построения дерева выражений ab + cde + * *

Алгебраические выражения

Дерево двоичного алгебраического выражения, эквивалентное ((5 + z) / -8) * (4 ^ 2)

Деревья алгебраических выражений представляют выражения, содержащие числа , переменные , а также унарные и бинарные операторы. Некоторые из общих операторов: × ( умножение ), ÷ ( деление ), + ( сложение ), − ( вычитание ), ^ ​​( возведение в степень ) и - ( отрицание ). Операторы содержатся во внутренних узлах дерева, числа и переменные — в листовых узлах . [1] Узлы бинарных операторов имеют два дочерних узла , а унарные операторы имеют один дочерний узел.

Булевы выражения

Дерево двоичного логического выражения, эквивалентное ((true false) false) (true false))

Булевы выражения представляются очень похоже на алгебраические выражения, единственное отличие заключается в конкретных значениях и используемых операторах. Булевы выражения используют true и false как постоянные значения, а операторы включают ( AND ), ( OR ), ( NOT ).

Смотрите также

Ссылки

  1. ^ abc Bruno R. Preiss (1998). "Expression Trees". Архивировано из оригинала 19 января 2017 г. Получено 20 декабря 2010 г.
  2. ^ Гопал, Арпита. Увеличение структур данных . PHI Learning, 2010, стр. 353.