Alors je viens d'apprendre les arbres rouges noirs à Cormen et wow! En règle générale, j'aime comprendre tous les algorithmes et structures de données au point que je peux les reconstruire à partir de zéro sans avoir à tricher en regardant le pseudo-code. J'aime vraiment les algorithmes, donc j'aime apprendre comment ils fonctionnent et je vais généralement ligne par ligne et j'essaie certains cas en regardant le code et en vérifiant si ce qui se passe est ce que j'ai compris que cela devrait se produire.
Le simple fait de comprendre ce qui se passait m'a pris BEAUCOUP de temps pour les arbres RB. Même avec les explications du livre, j'ai toujours eu du mal à saisir le code. Sans oublier que je ne comprenais pas comment / pourquoi les rotations fonctionnent. Je ne le trouve pas du tout intuitif. Je veux dire, les trois (six en fait) cas différents pour l'insertion puis les 4 cas pour la suppression? Est-il possible de comprendre cette chose? Il m'est impossible de reconstruire ce code sans tricher. Jusqu'à l'arbre binaire, je pouvais implémenter les choses de ma tête, avec quelques ajustements, cela fonctionnerait toujours, mais les arbres RB, je ne vais même pas essayer. Je veux dire, même le professeur est parfois confus, donc je suppose que ce n'est vraiment pas si facile, mais en même temps, ne devrions-nous pas avoir à comprendre tout ce qui se passe ou du moins pourquoi? Le livre n'a pas t vraiment expliquer comment quelqu'un a eu l'idée des rotations. Comment quelqu'un a-t-il remarqué qu'avec 2 rotations, vous pouviez résoudre n'importe quel problème d'insertion? C'est incroyable!
Ma question est, dois-je vraiment comprendre à 100% les arbres RB? Je me sens un peu mal de sauter des trucs sans bien le comprendre. Merci d'avance les gars! (PS: il n'y a pas de balise pour RB-tree, en fait même pas pour tree, juste binary-tree, donc je ne mets que des algorithmes)