Как переставить все возможные древовидные структуры для фиксированного числа листьев для дерева двоичных выражений? - PullRequest
1 голос
/ 18 октября 2011

Как переставить все возможные древовидные структуры для фиксированного числа листьев для двоичного дерева?какой алгоритм построить все возможные древовидные структуры?Каково число всех возможных древовидных структур?

для двоичного дерева выражений, алфавит должен быть листом

, например (a + b) * c

                        *
                      +   c
                    a   b

theчисло листьев равно 3

, которые мы хотим переставить в другую структуру, такую ​​как

                   *            
                 a   +   
                    b  c

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

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

теперь попробуйте сначала исправить порядок

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

1 Ответ

0 голосов
/ 19 октября 2011

Моя идея - рекурсивно поменять местами левый и правый узлы на каждом уровне, кроме листа, и сохранять при каждом свопе. Я не знаю, правильно ли это, но я не чувствую пропавших без вести

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