-3
searchNode 함수가 올바로 작동하지 않습니다. 이진 트리에있는 요소를 검색 할 때 True 대신 None을 반환합니다. True 또는 False 중 하나를 반환해야하므로 None이 아닌 이유를 이해할 수 없습니다. 그것을 고칠 수있는 방법을 알려주실 수 있습니까?파이썬을 사용하여 바이너리 검색 트리에서 검색 기능을 어떻게 구현합니까?
class Node:
def __init__(self, value):
self.value = value
self.left = None
self.right = None
class BinarySearchTree:
def __init__(self):
self.root = None
self.visited = 0
def insert(self,value):
if self.root is None:
self.root = Node(value)
else:
self.insertNode(self.root, value)
def insertNode(self,current, value):
if value <= current.value:
if current.left:
self.insertNode(current.left, value)
else:
current.left = Node(value)
else:
if current.right:
self.insertNode(current.right, value)
else:
current.right = Node(value)
def fromArray(self, newarr):
for each in newarr:
self.insert(each)
return
def search(self, value):
self.visited = 0
self.searchNode(self.root, value)
def searchNode(self,current,value):
if (current is None):
return False
elif (value == current.value):
return True
elif (value < current.value):
self.visited += 1
return self.searchNode(current.left, value)
else:
self.visited += 1
return self.searchNode(current.right, value)
이 메서드를 호출하고 결과를 평가하는 방법은 무엇입니까? –
스크린 샷 대신 코드를 붙여 넣습니다. – gonczor
게시물에 들여 쓰기 코드를 복사하여 복사하십시오. –