嗨,我只是在看一些R-B树代码的例子,我想知道是否有一个原因,新的属性TNULL被制作和使用,而不是只使用None。在这一点上,TNULL不是None的内置“替代品”,对吗?我查看了一些python文档,但没有在其中找到TNULL。下面是我在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如果有什么误会,请告诉我。谢谢你的帮助!
发布于 2021-05-01 22:49:17
使用TNULL是因为有时我们可能会检查TNULL节点的左边或右边,所以基本上存在TNULL,所以代码可以更优雅,同时不会因为None没有left或right属性而破坏程序
https://stackoverflow.com/questions/67346832
复制相似问题