gpt4 book ai didi

python - 查找 BST 中的所有节点是否都大于一个项目

转载 作者:太空宇宙 更新时间:2023-11-03 14:43:03 24 4
gpt4 key购买 nike

我一直在尝试实现下面的 all_bigger 函数,但我不确定我的逻辑是否存在缺陷。据我了解,BST 的组织结构在左侧具有最小值,因此我只需要检查 BST 的左侧。有没有更好的写法或者我的代码不正确?

class BSTNode:
"""A node is a BST """
def __init__(self: 'BSTNode', item, left, right):
self.item, self.left, self.right = item, left, right

def all_bigger(self, value):
"""
>>> bst = BSTNode(5, BSTNode(4), BSTNode(6))
>>> all_bigger(bst, 2)
True
"""
while self.left:
if self.left > value:
self.value = self.left:
else:
return False
return True

最佳答案

您的代码几乎是正确的,但有一些小错误。更正后的代码:

class BSTNode:
"""A node is a BST """
def __init__(self, item, left = None, right = None):
self.item, self.left, self.right = item, left, right

def all_bigger(self, value):
"""
>>> bst = BSTNode(5, BSTNode(4), BSTNode(6))
>>> all_bigger(bst, 2)
True
"""
root = self
while(root!=None):
if root.item > value:
root = root.left
else:
return False
return True

bst = BSTNode(5, BSTNode(4,BSTNode(1, None, None),None), BSTNode(6,None,None)) # Returns False
print(bst.all_bigger(2))

关于python - 查找 BST 中的所有节点是否都大于一个项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51860417/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com