Использовано изображение портала cartoonbank.ru В прошлой статье мы рассмотрели правила формирования красно-чёрного дерева поиска и рассмотрели случаи балансировки при добавлении элементов. Теперь поговорим об удалении элементов. Возьмём, для примера, вот такое красно-чёрное дерево: Читать дальше →
Представьте, что у вас есть многослойный пайплайн обработки данных.Ширина слоя — 5000 узлов. Количество слоёв — 60. Общее число узлов — 300 000.Каждую секунду приходит 10 новых событий (изменений на входе). Наивный подход — пересчитать всё с нуля — будет перебирать все 300 000 узлов на каждое обновление. При 10 обновлениях в секунду это 3 млн вычислений узлов в секунду. А если ширина слоя 100 000 и слоёв 100? Получаем 10 млн узлов на пересчёт. Компьютер не справляется. Читать далее
Довольно долгое время я воевал с красно-черным деревом. Вся информация, которую я находил, была в духе "листья и корень дерева всегда черные, ПОТОМУ ЧТО", "топ 5 свойств красно-черного дерева" или "3 случая при балансировке и 12 случаев при удалении ноды". Такой расклад меня не…
Тема не так нова, но почему-то все имеющиеся статьи либо с ошибками, либо сложны для понимания (например, фразами "ребенок удаленной вершины без детей"), поэтому для себя я решил заново полностью понять всю схему удаления вершин из красно-черного дерева, а заодно оформить это все в более-менее рабочий пост-заметку с пояснениями. Читать далее