Ich versuche, einigen Rang Baum mit besonderen Anforderungen auf Basis von AVL-Baum zu erstellen, annehmen kann, dass ich mit Knoten AVL-Baum habe, hat jeder Knoten zwei Felder:Algorithmus für den speziellen Fall von Rang Baum
id, priority
meine AVL-Baum von ID sortiert, auch habe ich eine Funktion:
foo(currentId, delta)
, die die Priorität der alle IDs senkt, die durch delta
diese Funktion mit Komplexität O (log arbeiten muss currentId
weniger oder gleich n), so meine qu Estion ist welche zusätzliche Information muss ich speichern, um den Knoten mit highest priority
in jeder Phase with complexity O(1)
(nach der Verwendung von foo auch!) Pop.
P.S.
Ich habe versucht, Informationen über maximale Priorität im rechten Teilbaum, maximale Priorität im linken Teilbaum zu speichern, aber es braucht viele Änderungen nach . Es wird mehr als nur O (log n) benötigen. Vielen Dank im Voraus für gute Ideen oder gute Bücher über Bäume.
Gründe für die Verwendung von AVL-Bäumen? Es sieht so aus, als wären verschiedene Warteschlangen-Implementierungen mit höherer Priorität hier möglicherweise besser. – templatetypedef
@templatetypedef: Kannst du mir bitte Link mit nützlichen Infos geben? Weiß nicht, worüber sprichst du? – rookie
Rufst du 'foo()' nach jedem Pop? Welche Werte von Delta verwenden Sie relativ zu den IDs? Ein durchgeführtes Beispiel dessen, was Sie erreichen wollen, hilft uns zu verstehen, was Sie hier erreichen wollen. – marcog