Então eu acabei de aprender árvores negras vermelhas em Cormen e uau! Normalmente, eu gosto de entender todos os algoritmos e estruturas de dados a ponto de poder reconstruí-los do zero sem precisar trapacear olhando o pseudo-código. Eu realmente gosto de algoritmos, então gosto de aprender como eles funcionam e geralmente passo a linha e tento alguns casos olhando o código e verificando se o que está acontecendo é o que eu entendi que deveria acontecer.
Apenas entender o que está acontecendo me levou muito tempo para as árvores RB. Mesmo com as explicações do livro, eu ainda achava difícil entender o código. Sem mencionar que eu não conseguia entender como / por que as rotações funcionam. Não acho nada intuitivo. Quero dizer, os três (seis, na verdade) casos diferentes para inserção e os quatro casos para exclusão? É possível entender isso? É impossível reconstruir esse código sem trapacear. Até a árvore binária, eu conseguia implementar as coisas da minha cabeça, com alguns ajustes sempre funcionava, mas as árvores RB eu nem vou tentar. Quero dizer, até o professor ficou confuso às vezes, então acho que não é tão fácil assim, mas ao mesmo tempo, não deveríamos ter que entender tudo o que está acontecendo ou pelo menos por quê? O livro não Explique realmente como alguém teve a ideia de rotações. Como alguém percebeu que com 2 rotações você poderia resolver qualquer problema de inserção? Isso é incrível!
Minha pergunta é: eu realmente preciso entender 100% das árvores RB? Eu me sinto meio que pulando coisas sem entender completamente. Agradecemos antecipadamente pessoal! (PS: não há tag para RB-tree, na verdade nem mesmo para tree, apenas binary-tree, então eu apenas coloco algoritmos)