Jump to content

Дерево двоичных выражений

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

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

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

[ редактировать ]

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Логические выражения

[ редактировать ]
Дерево двоичных логических выражений, эквивалентное ((true ЛОЖЬ) ЛОЖЬ) (истинный ЛОЖЬ))

Булевы выражения представляются очень похоже на алгебраические выражения, с той лишь разницей, что используются конкретные значения и операторы. Логические выражения используют true и false в качестве постоянных значений, а операторы включают в себя ( И ), ( ИЛИ ), ( НЕТ ).

См. также

[ редактировать ]
  1. ^ Jump up to: а б с Бруно Р. Прейсс (1998). «Деревья выражений» . Архивировано из оригинала 19 января 2017 года . Проверено 20 декабря 2010 г.
  2. ^ Гопал, Арпита. Увеличение структур данных . PHI Learning, 2010, с. 353.
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: c29412ea8a95199aa420c09ab47289f6__1708784220
URL1:https://arc.ask3.ru/arc/aa/c2/f6/c29412ea8a95199aa420c09ab47289f6.html
Заголовок, (Title) документа по адресу, URL1:
Binary expression tree - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)