我的目标是创建一个正常运行的红黑树。我了解理论上的概念,但是缺乏对如何在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”节点(出现在每个叶子上)。