Python的红黑树

2024-04-20 02:23:21 发布

您现在位置:Python中文网/ 问答频道 /正文

您好,我刚才在看一些R-B树代码的示例,我想知道是否有理由创建并使用新属性TNULL,而不是只使用None。注意,TNULL不是None的内置“替代品”,对吗?我查阅了一些python文档,但在其中找不到完整的内容。以下是我所指的内容,可以在https://www.programiz.com/dsa/red-black-tree上找到

class Node():
    def __init__(self, item):
        self.item = item
        self.parent = None
        self.left = None
        self.right = None
        self.color = 1


class RedBlackTree():
    def __init__(self):
        self.TNULL = Node(0)
        self.TNULL.color = 0
        self.TNULL.left = None
        self.TNULL.right = None
        self.root = self.TNULL

如果我有什么误解,请告诉我。谢谢你的帮助


Tags: 代码selfrightnonenode示例内容init
1条回答
网友
1楼 · 发布于 2024-04-20 02:23:21

之所以使用TNULL,是因为有时我们可能会检查TNULL节点的左侧或右侧,因此基本上TNULL是存在的,因此代码可以更优雅,同时不会中断程序,因为None没有属性leftright

相关问题 更多 >