@no_name123234234234234

Как обойти бинарное дерево?

Есть способ обойти массив данных приведённый, через класс, БЕЗ ЦИКЛОВ чтобы по id элемента можно было узнавать родителей/потомков?

У родителя (цифры 2) 3 потомка....

items = [
    {"id": 1, "parent": "root"},
    {"id": 2, "parent": 1, "type": "test"},
    {"id": 3, "parent": 1, "type": "test"},
    {"id": 4, "parent": 2, "type": "test"},
    {"id": 5, "parent": 2, "type": "test"},
    {"id": 6, "parent": 2, "type": "test"},
    {"id": 7, "parent": 4, "type": None},
    {"id": 8, "parent": 4, "type": None}
]
  • Вопрос задан
  • 160 просмотров
Пригласить эксперта
Ответы на вопрос 2
Vindicar
@Vindicar
RTFM!
Для именно такой структуры данных - нет, нельзя.
(Ну, можно попробовать рекурсией, но это извращение будет.)
Ответ написан
@dmshar
Вообще-то, если "У родителя (цифры 2) 3 потомка...." то это как бы не бинарное дерево.
А вот "по id элемента можно было узнавать родителей/потомков" - можно в одном специальном случае, который называется бинарное сортирующее дерево и используется, в частности, в алгоритме пирамидальной сортировки.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы