How do I print a binary tree? To output numbers?

I wrote a binary tree algorithm, but I output some encrypted codes instead of a tree, please tell me how to write the last line so that the tree is output.

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)

Author: strawdog, 2020-10-15

1 answers

You have an error in the method 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

And the print output should be without parameters a.printTree()

 2
Author: Andrey Maslov, 2020-10-15 14:01:31