Как распечатать бинарное дерево? Чтобы выводились числа?

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

from turtle import left, right


class Node:
    def __init__(self,data):
        self.left= None
        self.right=None
        self.data=data

    def degree(self):
        n=0
        if left:
            n=n+1
        if right:
            n=n+1
        return n
    def find(self,data):
        if self.data:
            if data ==self.data:
                return True
            elif data>self.data:
                if self.right:
                    return self.right.find(data)
                else:
                    return False
            elif data<self.data:
                if self.left:
                    return self.left.find(data)
                else:
                    return False
        else:
            return False

    def insert(self,data):
        if self.data:

            if data<self.data:
                if self.data is None:
                    self.left=Node(data)
                else:
                    self.left.insert(data)
            elif data > self.data:
                if self.right is None:
                    self.right = Node(data)
                else:
                    self.right.insert(data)
        else:
            self.data = data
    def printTree(self):
        if self.left:
            self.left.printTree()
        print(self.data),
        if self.right:
            self.right.printTree()
    def depth_first(self,root):
        res=[]
        if root:
            res.append(root.data)
            res=res+self.depth_first(root.left)
            res=res+self.depth_first(root.right)



a=Node(1)
a.insert(2)
a.insert(3)
a.insert(0)
a.printTree(a.root)


Ответы (1 шт):

Автор решения: Andrey Maslov

у тебя ошибка в методе insert

def insert(self,data):
        if self.data:

            if data<self.data:
                if self.left is None:  # здесь была ошибка ты проверял не self.left a self.data
                    self.left=Node(data)
                else:
                    self.left.insert(data)
            elif data > self.data:
                if self.right is None:
                    self.right = Node(data)
                else:
                    self.right.insert(data)
        else:
            self.data = data

и вывод печати должен быть без параметров a.printTree()

→ Ссылка