Primero, entenderemos el árbol binario y árbol de búsqueda binaria por separado, y luego veremos las diferencias entre un árbol binario y un árbol de búsqueda binario.
¿Qué es un árbol binario?
A Árbol binario es un
El árbol binario se puede representar como:
npm borrar caché
En la figura anterior, podemos observar que cada nodo contiene como máximo 2 hijos. Si algún nodo no contiene un hijo izquierdo o derecho, entonces el valor del puntero con respecto a ese hijo sería NULL.
Las terminologías básicas utilizadas en un árbol binario son:
En un árbol binario, hay un árbol conocido como árbol binario perfecto . Es un Árbol en el que todos los nodos internos deben contener dos nodos y todos los nodos hoja deben estar a la misma profundidad. En el caso de un árbol binario perfecto, el número total de nodos que existen en un árbol binario se puede calcular mediante la siguiente ecuación:
norte = 2m+1-1
donde n es el número de nodos, m es la profundidad de un nodo.
¿Qué es un árbol de búsqueda binaria?
A Árbol de búsqueda binaria es un árbol que sigue algún orden para organizar los elementos, mientras que el árbol binario no sigue ningún orden. En un árbol de búsqueda binaria, el valor del nodo izquierdo debe ser menor que el nodo principal y el valor del nodo derecho debe ser mayor que el nodo principal.
Entendamos el concepto de árbol de búsqueda binario a través de ejemplos.
En la figura anterior, podemos observar que el valor del nodo raíz es 15, que es mayor que el valor de todos los nodos en el subárbol izquierdo. El valor del nodo raíz es menor que los valores de todos los nodos en un subárbol derecho. Ahora, pasamos al hijo izquierdo del nodo raíz. 10 es mayor que 8 y menor que 12; también satisface la propiedad del árbol de búsqueda binaria. Ahora, pasamos al hijo derecho del nodo raíz; el valor 20 es mayor que 17 y menor que 25; también satisface la propiedad del árbol de búsqueda binario. Por tanto, podemos decir que el árbol que se muestra arriba es el árbol de búsqueda binaria.
Ahora, si cambiamos el valor de 12 a 16 en el árbol binario anterior, tenemos que averiguar si sigue siendo un árbol de búsqueda binario o no.
etiquetas html
El valor del nodo raíz es 15, que es mayor que 10 pero menor que 16, por lo que no satisface la propiedad del árbol de búsqueda binaria. Por tanto, no es un árbol de búsqueda binario.
Operaciones en el árbol de búsqueda binaria
Podemos realizar operaciones de inserción, eliminación y búsqueda en el árbol de búsqueda binaria. Entendamos cómo se realiza una búsqueda en una búsqueda binaria. A continuación se muestra el árbol binario sobre el cual tenemos que realizar la operación de búsqueda:
Supongamos que tenemos que buscar 10 en el árbol binario anterior. Para realizar la búsqueda binaria, consideraremos todos los números enteros en una matriz ordenada. Primero, creamos una lista completa en un espacio de búsqueda y todos los números existirán en el espacio de búsqueda. El espacio de búsqueda está marcado por dos punteros, es decir, inicio y fin. La matriz del árbol binario anterior se puede representar como
Primero, calcularemos el elemento del medio y compararemos el elemento del medio con el elemento que se va a buscar. El elemento medio se calcula usando n/2. El valor de n es 7; por lo tanto, el elemento del medio es 15. El elemento del medio no es igual al elemento buscado, es decir, 10.
Nota: Si el elemento que se busca es menor que el elemento medio, la búsqueda se realizará en la mitad izquierda; de lo contrario, la búsqueda se realizará en la mitad derecha. En el caso de igualdad, se encuentra el elemento.
Como el elemento a buscar es menor que el elemento medio, la búsqueda se realizará en la matriz izquierda. Ahora la búsqueda se reduce a la mitad, como se muestra a continuación:
El elemento medio en la matriz izquierda es 10, que es igual al elemento buscado.
Complejidad del tiempo
En una búsqueda binaria, hay n elementos. Si el elemento del medio no es igual al elemento buscado, entonces el espacio de búsqueda se reduce a n/2, y seguiremos reduciendo el espacio de búsqueda en n/2 hasta que encontremos el elemento. En toda la reducción, si pasamos de n a n/2 a n/4 y así sucesivamente, se necesitará log2n pasos.
Diferencias entre árbol binario y árbol de búsqueda binaria
Base de comparación | Árbol binario | Árbol de búsqueda binaria |
---|---|---|
Definición | Un árbol binario es una estructura de datos no lineal en la que un nodo puede tener como máximo dos hijos, es decir, un nodo puede tener 0, 1 o un máximo de dos hijos. Un árbol de búsqueda binario es un árbol binario ordenado en el que se sigue algún orden para organizar los nodos de un árbol. | |
Estructura | La estructura del árbol binario es que el primer nodo o el nodo superior se conoce como nodo raíz. Cada nodo de un árbol binario contiene el puntero izquierdo y el puntero derecho. El puntero izquierdo contiene la dirección del subárbol izquierdo, mientras que el puntero derecho contiene la dirección del subárbol derecho. | El árbol de búsqueda binario es uno de los tipos de árbol binario que tiene el valor de todos los nodos en el subárbol izquierdo menor o igual que el nodo raíz, y el valor de todos los nodos en un subárbol derecho es mayor o igual que el valor del nodo raíz. |
Operaciones | Las operaciones que se pueden implementar en un árbol binario son inserción, eliminación y recorrido. | Los árboles de búsqueda binaria son árboles binarios ordenados que proporcionan una inserción, eliminación y búsqueda rápidas. Las búsquedas implementan principalmente la búsqueda binaria ya que todas las claves están ordenadas. |
tipos | Cuatro tipos de árboles binarios son el árbol binario completo, el árbol binario completo, el árbol binario perfecto y el árbol binario extendido. | Existen diferentes tipos de árboles de búsqueda binaria, como árboles AVL, árboles Splay, árboles Tango, etc. |