Тож я просто навчився червоних чорних дерев у Кормен і ух! Як правило, мені подобається розуміти всі алгоритми та структури даних до того моменту, що я можу відновити їх з нуля без необхідності обману, дивлячись на псевдо-код. Мені дуже подобаються алгоритми, тому мені подобається дізнатися, як вони працюють, і я зазвичай переходжу по черзі і пробую деякі випадки, дивлячись на код і перевіряючи, чи відбувається те, що я зрозумів, що має статися.
Просто розуміння того, що відбувається, зайняло у мене багато часу для дерев RB. Навіть з поясненнями книги мені все одно було важко зрозуміти код. Не кажучи вже про те, що я не міг зрозуміти, як / чому працюють обертання. Я не вважаю це інтуїтивно зрозумілим. Я маю на увазі, три (шість насправді) різних випадків вставки, а потім 4 випадки для видалення? Чи можна зрозуміти цю річ? Мені неможливо відновити цей код без обману. До бінарного дерева я не міг реалізувати речі з голови, з деяким налаштуванням це завжди спрацювало б, але дерева RB я навіть не збираюся намагатися. Я маю на увазі, навіть вчитель іноді плутається, тому я гадаю, що це насправді не так просто, але в той же час, чи не повинні ми розуміти все, що відбувається, або принаймні чому? Книга не стала ' я справді не поясню, як хтось придумав ідею ротацій. Як хтось помітив, що за допомогою 2 обертів ви можете вирішити будь-яку проблему з введенням? Це дивовижно!
Моє запитання: чи я дійсно повинен на 100% розуміти дерева РБ? Я відчуваю себе погано, пропускаючи речі, не розуміючи цього повністю. Заздалегідь дякую, хлопці! (PS: немає тегів для RB-дерева, насправді навіть не для дерева, просто бінарне дерево, тому я лише ставлю алгоритми)