Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ создание бинарного дерева

Автор: Nebell 15.12.2006 23:36

Помогите с задачкой пож.:
Формула состоит из цифр, букв и знаков * + - (и скобки ()-знаки приоритета)
представить такую формулу в виде двоичного дерева

Напрример:
*
1 +
2 3
формула вида 1*2+3 т.е. (корень-налево-направо)
PS
type
telem=
ttree=^node;
node=record
info:telem;
left,right:ttree
end;

Автор: polic 15.12.2006 23:41

бинарные деревья это жесть =\

Автор: volvo 15.12.2006 23:44

Деревья как деревья...

Как формула задана, напиши нормально, в какой форме? Для префиксной - см. здесь:
http://forum.pascal.net.ru/index.php?s=&showtopic=7346&view=findpost&p=52604

Автор: Nebell 16.12.2006 16:25

формула имеет вид:
<формула>::<терминал>|(<формула><знак><формула>)
<знак>:+|-|*|\
<терминал>::=<переменная>|<цифра>
PS | - или

Дана формула (например (a*7+h)-(z\f-45))
ну и такую формулу представить в виде двоичного дерева

СПАСИБО БОЛЬШОЕ

Только вопрос-как представить такую формулу в префиксном виде )

Автор: volvo 16.12.2006 17:52

Зайди вот сюда:
http://forum.sources.ru/index.php?showtopic=42056

Здесь есть модуль, который тебе может очень сильно помочь... Только он не распознает обратный слеш, и не уверен, что он (без доработки) будет работать с константами, насколько я помню - только с переменными, но перевод из инфикса в префикс там реализован ...

Автор: Nebell 16.12.2006 19:14

Спасибо-реально помог

Сурового профи-оправдываешь!)