#python #merge #tree
#python #объединить #дерево
Вопрос:
Я работаю с Python. У меня есть два дерева с разной структурой (количество и порядок узлов).
Я хочу объединить их и соответствующий корень каждого из двух начальных деревьев, который должен стать первым списком дочерних элементов нового корня.
Мне трудно достичь этого. Я уверен, что должен быть очень тривиальный и простой способ сделать это, я просто наблюдаю за этим, я уверен.
Спасибо
M.
Комментарии:
1. Вы работаете с XML? Какой модуль вы используете? Пожалуйста, предоставьте более подробную информацию и, возможно, фрагмент кода, чтобы иметь представление о том, как выглядит ваша структура / как вы хотите, чтобы она выглядела.
Ответ №1:
Если у вас есть представление списка смежности, это должно быть легко сделать :
- Создайте новое дерево, состоящее только из одной вершины
- Добавьте ваши предыдущие деревья в качестве дочерних элементов новой вершины
Конечно, это сильно зависит от типа используемой вами структуры и от того, как она реализована.
Если вам интересно, я предлагаю вам взглянуть на 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