Właśnie nauczyłem się czerwonych czarnych drzew w Cormen i łał! Zazwyczaj lubię rozumieć wszystkie algorytmy i struktury danych do tego stopnia, że mogę je odbudować od zera bez konieczności oszukiwania, patrząc na pseudo kod. Naprawdę lubię algorytmy, więc lubię uczyć się, jak one działają, i zwykle chodzę wiersz po wierszu i wypróbowuję niektóre przypadki, patrząc na kod i sprawdzając, czy to, co się dzieje, jest tym, co zrozumiałem, że powinno się zdarzyć.
Samo zrozumienie, co się dzieje, zajęło mi dużo czasu dla drzew RB. Mimo wyjaśnień tej książki wciąż trudno mi było zrozumieć kod. Nie wspominając już o tym, że nie mogłem zrozumieć, jak / dlaczego działają rotacje. Nie uważam tego za intuicyjne. Mam na myśli trzy (właściwie sześć) różnych przypadków do wstawienia, a następnie 4 przypadki do usunięcia? Czy można to zrozumieć? Nie mogę odbudować tego kodu bez oszukiwania. Aż do binarnego drzewa mogłem wdrożyć te rzeczy z mojej głowy, z pewnymi poprawkami zawsze działałyby, ale drzew RB nawet nie spróbuję. To znaczy, nawet nauczyciel czasami się mylił, więc przypuszczam, że to naprawdę nie jest takie łatwe, ale jednocześnie nie powinniśmy rozumieć wszystkiego, co się dzieje, a przynajmniej dlaczego? Książka nie Naprawdę wyjaśniam, jak ktoś wpadł na pomysł rotacji. Jak ktoś zauważył, że przy 2 obrotach możesz rozwiązać problem z wstawieniem? To wspaniale!
Moje pytanie brzmi: czy naprawdę muszę w 100% zrozumieć drzewa RB? Czuję się źle, pomijając rzeczy, nie do końca je rozumiejąc. Z góry dziękuję! (PS: nie ma tagu dla drzewa RB, właściwie nawet dla drzewa, tylko drzewo binarne, więc umieszczam tylko algorytmy)