Ich habe eine BST implementiert, die in ihren n Knoten ein Objekt vom Typ Point (x, y) enthält, die Reihenfolge in der Struktur ist entsprechend den X-Werten.BST Suche Problem
Ich brauche eine Funktion zu implementieren, die als Eingabe den Bereich von X wird immer (x links, x rechts) und der Ausgang ist (EDIT): Die Summe der Y der Koordinaten in-Bereich (inklusive).
Es ist nicht so schwer, es durch "Gehen" durch alle Knoten zu machen, das Problem ist, dass ich es in O (Logn) -Komplexität tun wollte.
Ich dachte über die Initialisierung von Feldern von Bereichen und Summe von Y, aber irgendwie funktioniert es nicht mit den Einfüge- und Löschfunktionen. irgendwelche Ideen?
Ich bin mir ziemlich sicher, dass sie 'O (log n + | right-left |)' gemeint haben, was immer noch 'O (log n)' ist, aber mit mehr Variablen. – Bergi
Alternativ können Sie die Summe über alle Punkte akkumulieren und in jedem Knoten zwischenspeichern, so dass Sie schnell die Summe des Bereichs finden, indem Sie nur die Kanten betrachten. – Bergi