¿Qué son los árboles de búsqueda binarios?

Un árbol de búsqueda binaria es un árbol donde cada nodo tiene un hijo izquierdo y derecho. Puede faltar cualquiera de los niños, o ambos niños. Suponiendo que k representa el valor de un nodo dado, entonces un árbol de búsqueda binario también tiene la siguiente propiedad: todos los hijos a la izquierda del nodo tienen valores menores que k , y todos los hijos a la derecha del nodo tienen valores mayores que k . La parte superior de un árbol se conoce como la raíz , y los nodos expuestos en la parte inferior se conocen como hojas . Para buscar en un árbol un valor dado, comenzamos en la raíz y trabajamos hacia abajo.

Por ejemplo, para buscar 16, primero notamos que 16 7, por lo que atravesamos al niño correcto. Cada comparación da como resultado la reducción de la mitad de los elementos a inspeccionar. A este respecto, el algoritmo es similar a una búsqueda binaria en una matriz. Sin embargo, esto es cierto solo si el árbol está equilibrado.

Un árbol binario es una estructura de datos vinculada donde cada nodo apunta a dos nodos secundarios (como máximo). Los nodos hijos se denominan hijo izquierdo y hijo derecho.

Un árbol binario es un BST (Árbol de búsqueda binaria) si la clave del nodo es mayor que todos los nodos en su subárbol izquierdo y es más pequeña que todos los nodos en su subárbol derecho.

Sin embargo, el árbol debajo no es un BST, aunque para todos los nodos su nodo izquierdo es más pequeño y su nodo derecho es mayor que el valor del nodo actual.

Puede leer más con muchas visualizaciones paso a paso sobre Árboles binarios y Árboles de búsqueda binaria aquí.

El árbol de búsqueda binaria es una estructura de datos muy importante que se utiliza para almacenar datos de manera ordenada. Un árbol se llama árbol de búsqueda binaria si posee las siguientes propiedades.

1. El árbol de búsqueda binaria puede tener solo 0,1 o dos hijos.

2. el nodo del subárbol izquierdo debe ser menor o igual que el nodo padre.

3. El nodo del subárbol derecho debe ser mayor o igual que el nodo padre.

Su funcionamiento básico:

  1. Inserción.
  2. buscar
  3. Recorrido de preorden
  4. Recorrido posterior al pedido
  5. Recorrido en orden

Para obtener más detalles, visite el árbol de búsqueda binaria en Java.

Un tipo especial importante de árbol binario es el árbol de búsqueda binaria (BST). En un BST, cada nodo almacena información que incluye un valor clave único y quizás algunos datos asociados. Un árbol binario es un BST iff, para cada nodo n, en el árbol:

  • Todas las claves en el subárbol izquierdo de n son menores que la clave en n, y
  • todas las claves en el subárbol derecho de n son mayores que la clave en n.

Nota: si se permiten claves duplicadas, entonces los nodos con valores que son iguales a la clave en el nodo n pueden estar en el subárbol izquierdo de n o en su subárbol derecho (pero no en ambos). En estas notas, asumiremos que no se permiten duplicados.

Un árbol de búsqueda binario es un tipo especial de árbol binario donde la raíz es necesariamente mayor o igual que su hijo izquierdo y estrictamente menor que el hijo derecho. Un árbol de búsqueda binario es extremadamente eficiente cuando tiene que encontrar un elemento, porque la altura del árbol (distancia desde la raíz a un nodo hoja) será log (n), donde n es el número de nodos.

¡Hay muchos recursos en stackoverflow que también explican los BST con mucho más detalle!

El árbol de búsqueda binaria en la estructura de datos es un tipo de árbol que tiene 0/1/2 nodos.

Tiene las siguientes características:

  1. El nodo raíz es menor que el nodo derecho pero mayor que el nodo izquierdo.
  2. Para encontrar un elemento en el árbol, se necesita una comparación máxima = altura del árbol
  3. Complejidad de tiempo para búsqueda = O (n)

La respuesta de D Shiner a ¿Cuál es la diferencia entre un árbol binario y un árbol de búsqueda binario?

Esto puede ayudar.

More Interesting

¿Qué tan difícil es el algoritmo de verificación de traducción de Duolingo? ¿Existen otras herramientas de código abierto similares por ahí?

Cómo explicar la prueba de corrección del algoritmo de árbol de expansión mínimo prims a un laico

¿Cuál es el mejor algoritmo para encontrar números primos? ¿Cuál es su sintaxis?

¿Cómo termina una imagen en la página principal de reddit o imgur?

Como un codificador relativamente nuevo, mi código es un poco más largo que el de un programador experimentado en resolución de problemas. ¿Será esto un elemento disuasorio para los empleadores?

¿Cómo debo definir el orden de mi cromosoma en mi algoritmo genético?

Si pudiéramos reescribir las leyes del universo con el único fin de optimizar la computación, ¿cuáles serían estas leyes?

Cómo usar el algoritmo profundo de Facebook en nuestra aplicación

¿Puedo encontrar el camino hamiltoniano más corto en un gráfico completo ponderado no dirigido en tiempo polinómico (donde todos los pesos no son negativos)?

¿Hay alguna diferencia en la asignación de memoria entre la estructura y la matriz multidimensional?

¿Qué tipo de algoritmo utiliza Google para clasificar los correos?

¿Cómo hace un algoritmo para hacer objetos en movimiento a partir de fotos?

¿Cuáles son los 10 mejores algoritmos del siglo XX?

Cómo escribir un buen algoritmo

Si recientemente completé un campo de entrenamiento y todo lo que queda para conseguir un trabajo es la prueba técnica, ¿cuántas horas serán suficientes los algoritmos de aprendizaje?