Quick actions

cmd+k|ctrl+k

Navigation

Languages

5_15_Arboles_desafio_4

Snippet info

Language

Python

Visibility

public

Author

jorgetoto2006new

Created

2024-11-04T03:18:22.847034Z

Updated

2024-11-04T03:18:22.847034Z

# Definimos la clase Nodo que representa cada nodo del árbol.
class Nodo:
    def __init__(self, valor):
        self.valor = valor  # El valor que almacena el nodo.
        self.izquierdo = None  # Puntero al hijo izquierdo, inicialmente None.
        self.derecho = None  # Puntero al hijo derecho, inicialmente None.

# Implementamos una función para insertar un valor en el árbol de búsqueda binaria.
def insertar(nodo, valor):
    if nodo is None:  # Si el nodo actual es None, significa que hemos encontrado un lugar vacío para insertar.
        return Nodo(valor)  # Creamos un nuevo nodo con el valor y lo devolvemos como nuevo nodo.

    # Comparamos el valor que queremos insertar con el valor del nodo actual.
    if valor < nodo.valor:
        # Si el valor es menor, lo insertamos en el subárbol izquierdo.
        nodo.izquierdo = insertar(nodo.izquierdo, valor)
    elif valor > nodo.valor:
        # Si el valor es mayor, lo insertamos en el subárbol derecho.
        nodo.derecho = insertar(nodo.derecho, valor)
    
    # Devolvemos el nodo actual, ya que hemos actualizado su subárbol izquierdo o derecho.
    return nodo

# Función para buscar un valor en el árbol de búsqueda binaria.
def buscar(nodo, valor):
    if nodo is None:  # Si el nodo actual es None, hemos llegado al final del camino y no encontramos el valor.
        return False  # Devolvemos False, indicando que el valor no está en el árbol.
    
    if nodo.valor == valor:  # Si el nodo actual tiene el valor buscado.
        return True  # Devolvemos True, indicando que hemos encontrado el valor.
    
    # Decidimos si buscamos en el subárbol izquierdo o derecho.
    if valor < nodo.valor:
        return buscar(nodo.izquierdo, valor)  # Buscamos en el subárbol izquierdo si el valor es menor.
    else:
        return buscar(nodo.derecho, valor)  # Buscamos en el subárbol derecho si el valor es mayor.

# Construimos el árbol de búsqueda binaria con un conjunto de números únicos.
valores = [15, 10, 20, 8, 12, 17, 25]  # Conjunto de números que queremos insertar en el ABB.
raiz = None  # Empezamos con un árbol vacío.

# Insertamos cada valor en el árbol, creando el ABB.
for valor in valores:
    raiz = insertar(raiz, valor)

# Probamos la función de búsqueda con un número dado.
numero_a_buscar = 17  # Número que queremos buscar en el árbol.
resultado = buscar(raiz, numero_a_buscar)

# Mostramos el resultado de la búsqueda.
if resultado:
    print(f"El número {numero_a_buscar} existe en el árbol.")  # Si se encuentra el número, imprimimos este mensaje.
else:
    print(f"El número {numero_a_buscar} no existe en el árbol.")  # Si no se encuentra, imprimimos este mensaje.
INFO