Ich mache einen Binärbaum in Python 3.5.0 und ich mache die Einfügefunktion dafür. Aber ich bin in ein bisschen ein Problem laufen, wenn ich tree_insert
in sich selbst nennen es gibt mir diese Fehlermeldung:Python nicht rekursive Funktion definiert?
File "D:/MadeUpPath/BinaryTree.py", line 10, in tree_insert
tree_insert(data, self.left)
NameError: name 'tree_insert' is not defined
class BinaryTree():
def __init__(self, data):
self.left = None
self.right = None
self.data = data
def tree_insert(self, data):
if (data < self.data):
if (self.left != None):
tree_insert(data, self.left)
else:
self.left = BinaryTree(data)
else:
if (self.right != None):
tree_insert(data, self.right)
else:
self.right = BinaryTree(data)
Bei der Untersuchung weiter fand ich heraus, dass rekursive Funktionen einfach nicht funktionieren. Ich habe versucht, den folgenden Code, um sicherzustellen, sondern gab mir den gleichen Fehler:
def factorial(n):
if n == 0:
return 1
else:
return n * factorial(n - 1)
File "D:/MadeUpPath/BinaryTree.py", line 23, in factorial
return n * factorial(n - 1)
NameError: name 'factorial' is not defined
Wenn jemand kann mir in die richtige Richtung weisen, es wäre sehr geschätzt :)
ich brauche etwas Schlaf zu bekommen ... vielen Dank –