Sergiy_Hanzhela
@Sergiy_Hanzhela
Начинающий разработчик!

Построение бинарного дерева на Python?

Всем доброго дня! Есть класс который создает ноду дерева!
from dataclasses import dataclass
from typing import Optional

@dataclass
class BinaryTreeNode:
    val: int
    left: Optional["BinaryTreeNode"] = None
    right: Optional["BinaryTreeNode"] = None

    def __repr__(self):
        return f"<BinaryTreeNode[{self.val}]>"

И есть словарь с нодами типа
{758125: <BinaryTreeNode[758125]>, 758124: <BinaryTreeNode[758124]>, 758117: <BinaryTreeNode[758117]>, 758123: <BinaryTreeNode[758123]>, 758116: <BinaryTreeNode[758116]>, 758120: <BinaryTreeNode[758120]>, 758122: <BinaryTreeNode[758122]>, 758115: <BinaryTreeNode[758115]>, 758118: <BinaryTreeNode[758118]>, 758119: <BinaryTreeNode[758119]>, 758121: <BinaryTreeNode[758121]>}

Подскажите как можно построить дерево по этим нодам! root = BinaryTreeNode[758125]>,
в каждом объекте есть ссыль на левое или правое плечо!
объект формировался из файлика
INFO:Visiting <BinaryTreeNode[758125]>
DEBUG:<BinaryTreeNode[758125]> left is not empty. Adding <BinaryTreeNode[758124]> to the queue
INFO:Visiting <BinaryTreeNode[758124]>
DEBUG:<BinaryTreeNode[758124]> left is not empty. Adding <BinaryTreeNode[758117]> to the queue
DEBUG:<BinaryTreeNode[758124]> right is not empty. Adding <BinaryTreeNode[758123]> to the queue
INFO:Visiting <BinaryTreeNode[758117]>
DEBUG:<BinaryTreeNode[758117]> left is not empty. Adding <BinaryTreeNode[758116]> to the queue
INFO:Visiting <BinaryTreeNode[758123]>
DEBUG:<BinaryTreeNode[758123]> left is not empty. Adding <BinaryTreeNode[758120]> to the queue
DEBUG:<BinaryTreeNode[758123]> right is not empty. Adding <BinaryTreeNode[758122]> to the queue

это типа принт самого дерева нужно его восстановить по файлу,
примеров много но везде почти выбор куда писать в зависимости от больше или меньше значение соответственно в лево или право!
в общем ступор пока!
За ранее спасибо!
  • Вопрос задан
  • 190 просмотров
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы