<jupyter_start><jupyter_text><jupyter_code>class NodoArbol:
  def __init__(self, dato, hijo_izq=None, hijo_der=None):
    self.dato=dato
    self.left= hijo_izq
    self.rigth= hijo_der<jupyter_output><empty_output><jupyter_text>Arbol Binario de busqueda
Los nodos a la izq son menores a la raiz y los nodos a la derecha son mayores a la raiz.<jupyter_code>class BinarySearchTree:
  def __init__(self):
    self.__root=None

  def insert(self, value):
    if self.__root == None:
      self.__root = NodoArbol(value, None, None)
    else:
      #Preguntar si value es menor que root, de ser el caso, instertar a la izq
      #Pero. ser el caso que el sub arbol izq ya tiene muchos elementos.
      self.__instert_nodo__(self.__root, value)

  def __instert_nodo__(self, nodo, value):
    if nodo.dato == value:
      pass
    elif value< nodo.dato:
      if nodo.left == None: #True va a la izq 
        nodo.left = NodoArbol(value, None, None)
      else:
        self.__instert_nodo__(nodo.right, value)


bst= BinarySearchTree()
bst.insert(30)
bst.insert(20)
bst.insert(40)<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.09435626102292768, 'fraction_numerical': 0.005291005291005291, 'mean_word_length': 3.235074626865672, 'pattern_counts': {'":': 0, '<': 10, '<?xml version=': 0, '>': 9, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '2', 'dir': 'jupyter-structured-clean-dedup', 'id': '196489', 'license': 'MIT', 'n_tokens_mistral': 432, 'n_tokens_neox': 417, 'n_words': 112, 'path': '13_ene_daa.ipynb', 'repo_name': 'CarlosKarim/daa_2021_1', 'size': '1134'}