0
BinaryTree가 BinarySearchTree인지 확인하는 프로그램을 작성하려고합니다. 이것은 내가 지금까지 가지고있는 것이다.Python 평가 8> 10 To True
class BinaryTreeNode:
def __init__(self, value):
self.value = value
self.left = None
self.right = None
def insert_right(self, value):
self.right = BinaryTreeNode(value)
return self.right
def insert_left(self, value):
self.left = BinaryTreeNode(value)
return self.left
def isBST(node):
return isBSTHelper(node, float('-inf'), float('inf'))
def isBSTHelper(node, minimum, maximum):
if node is None:
return True
current_node = node.value
if current_node < minimum or current_node > maximum:
print current_node, minimum, maximum
# Somehow, we enter this loop even though minimum < 10 < maximum
return False
left_valid = isBSTHelper(node.left, minimum, current_node)
right_valid = isBSTHelper(node.right, current_node, maximum)
return (left_valid and right_valid)
if __name__ == '__main__':
bintree = BinaryTreeNode('10')
bintree.insert_left('8')
bintree.insert_right('12')
# This should return True
print isBST(bintree)
는 여러 개의 디버그 인쇄 문을 시도하고 그 일을 후에, 나는 내 기능 isBSTHelper 10. 내가 할 수없는 그림이다, 최대 값보다 큰 것으로, 8 CURRENT_VALUE을 평가하는 것 같다 깨달았다 왜?
수취인?