Выполнить пункт г)
Формулу вида:
::= |( )
::= + | - | *
::= 0|1|2|3|4|5|6|7|8|9
можно представить в виде двоичного дерева (‘дерева – формулы ‘):
- формула из одного терминала (цифры) представляется деревом из одной вершины (корнем) с этим терминалом;
- формула вида ( f1 s f2 ) - деревом, в котором корень – это знак s, а
левое и правое поддеревья – это соответствующие представления f1 и f2 :
в) пусть в дереве – формуле в качестве терминалов используются не только цифры, но и буквы, играющие роль переменных; преобразовать заданное дерево – формулу, заменяя в нем все поддеревья, соответствующие формулам ( ( f1 ± f2 ) * f3 ) и ( f1 *( f2 ± f3 ) ) на поддеревья, соответствующие формулам ( ( f1 * f3) ± ( f2 * f3 ) ) и ( ( f1 * f2 ) ± ( f1 * f3 ) );
г) выполнить в заданном дереве – формуле преобразования, обратные преобразованиям из пункта в; распечатать преобразованное дерево в 1)прямом, 2)обратном, 3)концевом порядке.