Así que acabo de aprender árboles rojos negros en Cormen y ¡guau! Por lo general, me gusta entender todos los algoritmos y las estructuras de datos hasta el punto en que puedo reconstruirlos desde cero sin tener que hacer trampa mirando el pseudocódigo. Realmente me gustan los algoritmos, así que disfruto aprendiendo cómo funcionan y generalmente voy línea por línea e intento algunos casos mirando el código y verificando si lo que está sucediendo es lo que entendí que debería suceder.
Solo entender lo que está pasando me llevó MUCHO tiempo para los árboles RB. Incluso con las explicaciones del libro, todavía me resultaba difícil comprender el código. Sin mencionar que no podía entender cómo / por qué funcionan las rotaciones. No lo encuentro intuitivo en absoluto. Quiero decir, ¿los tres (seis en realidad) diferentes casos de inserción y luego los 4 casos de eliminación? ¿Es posible entender esto? Es imposible para mí reconstruir este código sin hacer trampa. Hasta el árbol binario pude implementar las cosas de mi cabeza, con algunos ajustes siempre funcionaría, pero los árboles RB ni siquiera voy a intentarlo. Quiero decir, incluso el profesor se confundía a veces, así que supongo que realmente no es tan fácil, pero al mismo tiempo, ¿no deberíamos tener que entender todo lo que está sucediendo o al menos por qué? El libro no Realmente explica cómo a alguien se le ocurrió la idea de las rotaciones. ¿Cómo notó alguien que con 2 rotaciones podría resolver cualquier problema de inserción? ¡Eso es increíble!
Mi pregunta es, ¿realmente tengo que entender al 100% los árboles RB? Me siento un poco mal saltando cosas sin entenderlo completamente. Gracias de antemano chicos! (PD: no hay una etiqueta para RB-tree, en realidad ni siquiera para el árbol, solo binary-tree, por lo que solo pongo algoritmos)