Un árbol de búsqueda binario es un árbol donde cada nodo contiene datos y un puntero secundario izquierdo (nodo) y un puntero secundario derecho (nodo). Aunque los datos se pueden insertar en dicho árbol en el orden correcto, no hay garantía de que el árbol resultante esté equilibrado. Por ejemplo, si se insertan datos de una lista ordenada, el árbol resultante no se parecerá en absoluto a un árbol, sino que solo será una larga lista vinculada.
Existen varias variaciones en el árbol de búsqueda binario que aseguran que el árbol permanecerá equilibrado sin importar lo que se inserte o elimine. Un árbol rojo-negro es uno de ellos. Además de la información almacenada en un nodo BST, un nodo de árbol RB incluye una variable de “color” (rojo o negro). Con esta información, un árbol RB se puede reequilibrar después de cada inserción o eliminación.
La desventaja de un árbol RB sobre su versión BST más simple es la codificación adicional y el tiempo extra que se necesita para hacer inserciones o eliminaciones debido a la necesidad de reequilibrar (excepto cuando el BST está seriamente desequilibrado).
- ¿Cuáles son las aplicaciones más prácticas (vida cotidiana) del algoritmo de agrupación de k-means? ¿Cómo se ha utilizado exactamente k-means en estas aplicaciones?
- ¿Por qué no todos simplemente compran algoritmos comerciales y se enriquecen con ellos?
- ¿Cuáles son las características de un algoritmo codicioso?
- ¿Cuáles son las características de los árboles de coníferas y cuáles son algunas plantas / árboles con aspectos similares?
- ¿Es 'Cracking the Coding Interview' una lectura obligatoria cuando se postula para ser un ingeniero front-end?