-
Notifications
You must be signed in to change notification settings - Fork 1
Home
In this realisation I have initial class (Node) and one main class (RedBlackTree). There is a couple of side notes that I wanted to point out in case of misunderstanding. In the Node class I have __init__
with following parameters: value (which is a value that we will be inserting in our tree), black (which is a color of our node, initially it is in the False position because every new node have to be red color), left_tree, right_tree, parent_tree, is_left_child.
The parent_tree
parameter is pointing to the parent of our current node, like this child -> parent (it is very convenient to have pointer to parent node to check it's sibling node color). The is_left_child
parameter helps us to determine whether node is on the left side of the tree or is on the right side of the tree. To be honest, series of videos of this guy (https://www.youtube.com/watch?v=nMExd4DthdA&list=PLpPXw4zFa0uKKhaSz87IowJnOTzh9tiBk&index=66) helped me a lot to properly understand how red-black-tree have to be structured.
В этой реализации у меня есть начальный класс (Node) и один главный класс (RedBlackTree). Есть пару моментов, которые я хотел бы прояснить, чтобы не возникало путаницы. В классе Node у меня есть метод __init__
со следующими параметрами: value (то есть значение, которое мы будем вставлять в наше дерево), black (то есть цвет нашего узла, изначально этот параметр стоит в позиции False, так как каждый новый узел, который мы вставляем в наше дерево должен быть красного цвета), left_tree, right_tree, parent_tree, is_left_child.
Параметр parent_tree
указывает на нашего родителя нашего текущего узла, примерно так: родитель указывает на наш текущий узел, а у нашего текущего узла есть указатель на нашего родителя (на самом деле это очень удобно иметь указатель на нашего родителя, чтобы проверять цвет его соседнего элемента к примеру). Параметр is_left_child
позволяет нам определить каким по отношению к нашему родителю является текущий узел, то есть по какую сторону от нашего родителя мы находимся, слева или справа. Если честно, мне очень помогли серии видео этого профессора (https://www.youtube.com/watch?v=nMExd4DthdA&list=PLpPXw4zFa0uKKhaSz87IowJnOTzh9tiBk&index=66) (для тех кто хорошо дружит с английским).