Красно-черное дерево является одним из видов самобалансирующейся бинарных деревьев поиска, структуры данных, используемые в информатике, как правило, используются для реализации ассоциативных массивов. Оригинальное сооружение было изобретено в 1972 году Рудольф Байер, который назвал их "симметричного бинарного B-деревья", но приобрел свое современное название в документе, в 1978 году Leo J. Guibas и Роберт Sedgewick. Это сложная, но имеет хорошие наихудшее время для осуществления своей деятельности и является эффективной на практике: он может поиска, вставки и удаления в O (Вход п), где N это количество элементов в дереве.
Красно-черное дерево представляет собой особый тип бинарного дерева, которое является структура, используемая в компьютерной науке организовать штук сопоставимых данных, такие как номера. Каждая часть данных хранится в узле. Один из узлов всегда функционирует как наша отправная точка, а не ребенка любого узла, мы называем это корневой узел или корень. Она до двух "детей", другие узлы, к которым он подключается. Каждая из этих детей могут иметь детей от своей собственной, и так далее. Корневого узла, таким образом, путь, соединяющий его на любой другой узел в дереве.
Если узел не имеет детей, мы называем его конечного узла, так как интуитивно он находится на периферии этого дерева. Поддерева часть дерева, которая может быть достигнута с определенными узлами, которые считаются само дерево. В красно-черные деревья, предполагается, что оставляет быть нулевым или пустым.
Как красно-черные деревья, также бинарные деревья поиска, которые они должны соблюдать ограничения, что каждый узел содержит значение большее или равное для всех узлов в левом поддерева, и меньше или равны для всех узлов, в своем праве поддерева. Это позволяет быстро искать дерево для заданного значения.
Следующий код показывает, как реализовать красно-черное дерево Java:
|