Моя цель - создать работающее красно-черное дерево. Я понимаю теоретическую концепцию, но мне не хватает понимания, как зависать с классами в Python. Я думал о:
Реализация чего-то такого, как:
RED = 'R'
BLACK = 'B'
class Node:
def __init__(self):
self._color = BLACK
self._key = self._left = self._right = self._p = None
class Tree:
nil = Node()
nil.color = BLACK
def __init__(self, root=nil):
self.root = root
def rb_insert(self, z):
y = self.nil
...
z.p = y # ISSUE... How should I fix it?
Но, как и ожидалось, z не имеет атрибута p (поскольку это целое число).
Поэтому я думал изменить конструктор узла, чтобы получить ключ, но в этом случае я не знаю, как обращаться с 'nil'Node (который появляется на каждом листе).