Als Schularbeiten muss ich einen binären Suchbaum aus dem gegebenen Array erstellen und ein paar Funktionen darauf setzen. Die search()
Funktion funktioniert nicht und ich weiß nicht warum, es wird immer None
zurückgegeben, obwohl es entweder True
oder False
zurückgegeben werden soll. Möglicherweise gibt es einen Fehler in meinem Code beim Erstellen von Funktionen, aber das Upload-System schreibt, dass es erfolgreich einen Baum erstellt.Warum Suchfunktion zurückgibt Keine?
visited = 0
class Node:
def __init__(self, value):
self.left = None
self.right = None
self.data = value
class BinarySearchTree:
def __init__(self):
self.root = None
def insert(self, value):
if self.root is None:
self.root = Node(value)
else:
self._insert(value, self.root)
def _insert(self, value, curNode):
if value < curNode.data:
if curNode.left is None:
curNode.left = Node(value)
else:
self._insert(value, curNode.left)
else:
if curNode.right is None:
curNode.right = Node(value)
else:
self._insert(value, curNode.right)
def fromArray(self, array):
for i in range(len(array) - 1):
value = array[i]
self.insert(value)
i += 1
def search(self, value):
global visited
if self.root.data is None:
visited += 1
return False
else:
return self._search(value, self.root)
def _search(self, value, curNode):
global visited
if value == curNode.data:
visited += 1
return True
elif value < curNode.data and curNode.left is not None:
self._search(value, curNode.left)
elif value > curNode.data and curNode.right is not None:
self._search(value, curNode.right)
else:
return False
def min(self):
global visited
curNode = self.root
while curNode.left is not None:
visited += 1
curNode = curNode.left
return curNode
def max(self):
global visited
curNode = self.root
while curNode.right is not None:
visited += 1
curNode = curNode.right
return curNode
def visitedNodes(self):
return visited
Sie wahrscheinlich die besuchten Variable eine Eigenschaft des Baumes –
Ich habe versucht, machen sollte, aber ich weiß nicht, wie, so habe ich es ein globales –
verschiebe es in die ' __init__' wie die anderen –