<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.right = hijo_der<jupyter_output><empty_output><jupyter_text>Arbol Binario de Busqueda
Los nodos a la izquierda son menores a la raiz y los nodos de la derecha son mayores a la raiz, pueden ser recorridos en preorden, inorden y posorden<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 o mayor que root """
      self.__InsertNodo__(self.__root, value)
  
  def InsertNodo(self, nodo,value):
    if nodo.dato == value:
      pass
    elif value < nodo.dato:#True, va a la izquierda
      if nodo.left == None:#revisar si hay espacio a la izquierda 
        nodo.left = NodoArbol(value, None,None)#insertamos
      else:
        self.__InsertNodo__(nodo.left, value)
    else:
      if nodo.right == None:
        nodo.right = NodoArbol(value, None, None)
      else:
        self.__InsertNodo__(nodo.right, value)<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.09415584415584416, 'fraction_numerical': 0.0, 'mean_word_length': 3.0559210526315788, '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': '484102', 'license': 'MIT', 'n_tokens_mistral': 446, 'n_tokens_neox': 432, 'n_words': 113, 'path': '13_Enero.ipynb', 'repo_name': 'Ale1167A/daa_2021_1', 'size': '1232'}