-3
関数searchNodeが正しく動作しません。バイナリツリーにある要素を検索すると、TrueではなくNoneが返されます。私はそれがなぜ真であるか偽であるが、決してNoneを返さなければならないので、なぜそれがNoneであるのか分からない。それを修正する方法を教えてもらえますか?バイナリ検索ツリーでPythonを使用して検索機能を実装するにはどうすればよいですか?
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
あなたの投稿にあなたのコードを貼り付けてください(字下げの世話をしてください)。 –