Methodenaufruf in Klassen, BinarySearchTree
Verfasst: Dienstag 11. Mai 2021, 13:47
Hallo zusammen!
Ich hätte eine kleine Anfängerfrage bzgl. folgendem Methodenaufruf auf einem erzeugten Objekt der Klasse TreeNode.
So funktioniert die Suche nach einem Element in meinem kleinen Test-Baum:
Wenn ich allerdings die search-Methode einrücke und 'self' als erstes Argument übergebe und dann versuche die Methode über die Punktschreibweise auf dem Objekt 'root' aufzurufen, klappt das nicht mehr!
Allerdings check ich ehrlich gesagt auch gar nicht, was ich dann beim Parameter 'node' in der search-Methode beim Aufruf übergeben soll??
NameError: name 'search' is not defined
Vielen Dank für eine erhellende Antwort!
Ich hätte eine kleine Anfängerfrage bzgl. folgendem Methodenaufruf auf einem erzeugten Objekt der Klasse TreeNode.
So funktioniert die Suche nach einem Element in meinem kleinen Test-Baum:
Code: Alles auswählen
class TreeNode:
def __init__(self, val, left=None, right=None):
self.value = val
self.leftChild = left
self.rightChild = right
def search(searchValue, node):
if node is None:
print("value not found!")
return node
elif node.value == searchValue:
print("value found at:", node)
elif searchValue < node.value:
return search(searchValue, node.leftChild)
else:
return search(searchValue, node.rightChild)
node11=TreeNode(10)
node12=TreeNode(33)
node21=TreeNode(56)
node22=TreeNode(89)
node1 = TreeNode(25,node11,node12)
node2 = TreeNode(75,node21, node22)
root = TreeNode(50, node1, node2)
search(33, root)
Allerdings check ich ehrlich gesagt auch gar nicht, was ich dann beim Parameter 'node' in der search-Methode beim Aufruf übergeben soll??
NameError: name 'search' is not defined
Code: Alles auswählen
class TreeNode:
def __init__(self, val, left=None, right=None):
self.value = val
self.leftChild = left
self.rightChild = right
def search(self, searchValue, node):
if node is None:
print("value not found!")
return node
elif node.value == searchValue:
print("value found at:", node)
elif searchValue < node.value:
return search(searchValue, node.leftChild)
else:
return search(searchValue, node.rightChild)
node11=TreeNode(10)
node12=TreeNode(33)
node21=TreeNode(56)
node22=TreeNode(89)
node1 = TreeNode(25,node11,node12)
node2 = TreeNode(75,node21, node22)
root = TreeNode(50, node1, node2)
root.search(33,root)