Объединить (объединить) два или более деревьев, добавив их, сохранив их соответствующую внутреннюю структуру - PullRequest
0 голосов
/ 02 апреля 2019

Я работаю с Python.У меня есть два дерева, с разной структурой (количество и порядок узлов).

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

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

Спасибо

М.

1 Ответ

0 голосов
/ 02 апреля 2019

Если у вас есть представление списка смежности, это должно быть легко сделать:

  • Создать новое дерево, состоящее только из одной вершины
  • Добавить ваши предыдущие деревья как потомковновая вершина

Конечно, это сильно зависит от типа структуры, которую вы используете, и от того, как она реализована.

Если вам интересно, я предлагаю вам взглянуть набиблиотека treex, которую я внес в разработку, предназначенная для обработки деревьев, унаследованных структур данных и различных алгоритмов.Вы можете найти библиотеку здесь: https://gitlab.inria.fr/azais/treex

В качестве примера, в treex, то, что вы хотите сделать (если я правильно понял), должно быть сделано так:

t = Tree()
t.add_subtree(t1) #your first tree to merge
t.add_subtree(t2) #the second one, and so on
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...