Árvore binária de busca

Uma árvore binária de busca é uma estrutura de dados de árvore binária baseada em nós que tem as seguintes propriedades:

  • A subárvore esquerda de um nó contém apenas nós com chaves menores que a chave do nó.
  • A subárvore direita de um nó contém apenas nós com chaves maiores que a chave do nó.
  • As subárvores esquerda e direita também devem ser árvores binárias de busca.

Crie uma classe que converta o número em um nó da árvore (cada nó deve ter um filho esquerdo, um filho direito e o valor do nó; o filho pode ser none). A classe deve ter uma função que insira um novo nó na árvore binária. Ela também deve ter outra função que imprima a árvore binária final (a árvore deve ser impressa da esquerda para a direita {esquerda-raiz-direita}).

Exemplos

          10                                                           15
       5     11 ➞ [3, 5, 6, 10, 11]                               7          18        ➞  [5, 9, 7, 15, 17, 18, 19]
   3     6                                                     5     9     17     19

root=Node(10) ➞ 10 is the root of the tree (first node in the top)
root.insert(5)
root.insert(11)
root.insert(3)
root.insert(6)
root.PrintTree() ➞ [3, 5, 6, 10, 11]
root.data ➞ 10
root.left.data ➞ 5
root.right.data ➞ 11

Notas

N/A