Rutas
/
ReScript
ReScript
/
Ejercicios
/
Árbol binario de búsqueda
Árbol binario de búsqueda

Árbol binario de búsqueda

Media

Instrucciones

Inserta y busca números en un árbol binario.

Cuando necesitamos representar datos ordenados, un array no es una buena estructura de datos.

Supongamos que tenemos el array [1, 3, 4, 5] y le añadimos 2, de modo que pasa a ser [1, 3, 4, 5, 2]. ¡Ahora tenemos que volver a ordenar el array entero! Podemos mejorarlo si caemos en la cuenta de que solo tenemos que hacer sitio para el nuevo elemento [1, nil, 3, 4, 5] y después colocar el elemento en el hueco que hemos creado. Pero esto sigue obligándonos a desplazar muchos elementos una posición hacia abajo.

Los árboles binarios de búsqueda, sin embargo, pueden operar con datos ordenados de forma mucho más eficiente.

Un árbol binario de búsqueda consta de una serie de nodos conectados. Cada nodo contiene un dato (por ejemplo, el número 3), una variable llamada left y una variable llamada right. Las variables left y right apuntan a nil o a otros nodos. Como estos otros nodos tienen a su vez otros nodos por debajo, decimos que las variables left y right apuntan a subárboles. Todos los datos del subárbol izquierdo son menores o iguales que los datos del nodo actual, y todos los datos del subárbol derecho son mayores que los datos del nodo actual.

Por ejemplo, si tuviéramos un nodo que contiene el dato 4 y añadiéramos el dato 2, nuestro árbol tendría este aspecto:

Un grafo con el nodo raíz 4 y un único nodo hijo 2.

      4
     /
    2

Si después añadiéramos 6, tendría este aspecto:

Un grafo con el nodo raíz 4 y dos nodos hijos 2 y 6.

      4
     / \
    2   6

Si después añadiéramos 3, tendría este aspecto:

Un grafo con el nodo raíz 4, dos nodos hijos 2 y 6 y un nodo nieto 3.

       4
     /   \
    2     6
     \
      3

Y si después añadiéramos 1, 5 y 7, tendría este aspecto:

Un grafo con el nodo raíz 4, dos nodos hijos 2 y 6 y cuatro nodos nietos 1, 3, 5 y 7.

          4
        /   \
       /     \
      2       6
     / \     / \
    1   3   5   7

Créditos

Las imágenes fueron creadas por habere-et-dispertire usando PGF/TikZ de Till Tantau.


Fuente

Josh Cheek
Editar en GitHub El enlace se abre en una ventana o pestaña nueva
ReScript Exercism

¿Listo para empezar Árbol binario de búsqueda?

Regístrate en Exercism para aprender y dominar ReScript con 33 ejercicios y mentoría humana real, todo gratis.