Quindi ho appena imparato alberi neri e rossi a Cormen e wow! Tipicamente mi piace capire tutti gli algoritmi e le strutture dati al punto da poterli ricostruire da zero senza dover barare guardando lo pseudo codice. Mi piacciono molto gli algoritmi quindi mi diverto a imparare come funzionano e di solito passo linea per riga e provo alcuni casi osservando il codice e controllando se ciò che sta accadendo è quello che ho capito dovrebbe accadere.
Solo capire cosa sta succedendo mi ha portato MOLTO tempo per gli alberi RB. Anche con le spiegazioni del libro, trovavo ancora difficile comprendere il codice. Per non parlare del fatto che non potevo capire come / perché le rotazioni funzionano. Non lo trovo affatto intuitivo. Voglio dire, i tre (sei in realtà) diversi casi per l'inserimento e poi i 4 casi per la cancellazione? È possibile capire questa cosa? È impossibile per me ricostruire questo codice senza barare. Fino a quando l'albero binario non potrei implementare la roba fuori dalla mia testa, con qualche ritocco funzionerebbe sempre, ma gli alberi RB non ho intenzione di provare. Voglio dire, anche l'insegnante si è confusa qualche volta, quindi suppongo che non sia così facile, ma allo stesso tempo, non dovremmo capire tutto quello che sta succedendo o almeno perché? Il libro non ha davvero spiegato come qualcuno abbia avuto l'idea delle rotazioni. Come ha fatto qualcuno a notare che con 2 rotazioni è possibile risolvere qualsiasi problema di inserimento? È fantastico!
La mia domanda è: devo davvero capire al 100% gli alberi RB? Mi sento un po 'brutto saltare le cose senza comprenderlo appieno. Grazie in anticipo ragazzi! (PS: non ci sono tag per RB-tree, in realtà nemmeno per albero, solo binary-tree, quindi metto solo algoritmi)