/ / Aktualisieren von Daten in einem binären Suchbaum - Python, binärer Suchbaum, Traversal

Aktualisieren von Daten in einem binären Suchbaum - Python, binärer Suchbaum, Traversal

Ich versuche, Werte in Knoten in einer Implementierung einer BST (Binary Search Tree) in Python mit Dictionaries und Rekursion zu aktualisieren. Es funktioniert jedoch nicht. Bitte erleuchte mich!

Hier ist meine BST-Implementierung mit Wörterbüchern in Python:

tree = {
"right": None,
"data": [9124, 5.82, 5],
"left": {
"right": {
"right": None,
"data": [8298, 2.4, 6],
"left": None
},
"data": [5549, 4.76, 5],
"left": None
}
}

Das sieht optisch so aus:

Visuelles Aussehen des obigen Wörterbuchs

Hier ist mein Versuch, den Mittelwert (Preis) jeder Liste in "Daten" durch Rekursion um 10% zu erhöhen und zu aktualisieren, aber es funktioniert aus irgendeinem Grund nicht, von dem ich nicht weiß:

def IncreaseByTen(tree):
if tree == None:
return 0

price = tree["data"][1]

IncreaseByTen(tree["left"])
price += (price * 0.1)
IncreaseByTen(tree["right"])

Antworten:

0 für die Antwort № 1

Folgende Zeile ändern Sie nur die lokale Variable price, nicht der Listenpunkt:

price += (price * 0.1)

Sie müssen den Wert dem Listenelement zurück zuweisen:

price = tree["data"][1]
...
price += (price * 0.1)
tree["data"][1] = price  # <----

oder du kannst es benutzen *=:

tree["data"][1] *= 1.1