Link-Cut-Baum ist eine von Sleator und Tarjan erfundene Datenstruktur, die verschiedene Operationen und Abfragen in einer Knoten-Gesamtstruktur in Zeit O ( log n ) unterstützt . (Zum BeispielkombiniertOperation Link zwei Bäume im Wald zu einem, während Operation Cut einen Baum im Wald in zwei Bäume unterteilt.)
Unter Verwendung von Link-Cut-Bäumen sind mehrere Anwendungen bekannt, und hier interessiert mich insbesondere Goodrichs Separatorzerlegung , bei der bei einem Knoten-Ebenengraphen G ein entsprechender Binärbaum erhalten werden kann, in dem Knoten Teilgraphen von G und die Kinder von sind ein Knoten H sind die Subgraphen von H durch den Separator auf geteilt H . Eine solche Zerlegung kann leicht in O ( n log n ) -Zeit konstruiert werden (da ein Separator in O ( n ) -Zeit gefunden werden kann und der Separator den so ausgeglichenen Graphen danach teilt Ebene von Trennungen die Blätter des Baumes sind der Größe O ( 1 ) ). Der Hauptbeitrag von Goodrich besteht darin, dass er eine solche Zerlegung in der Zeit O ( n ) konstruieren kann, indem er die Datenstrukturen beibehält und wiederverwendet, die zum Auffinden von Trennzeichen in jeder Ebene verwendet werden.
Eine der Datenstrukturen, die bei der Konstruktion verwendet werden, ist in der Tat der Link-Cut-Baum. Auf Seite 7 des Papiers von Goodrich behauptete er, dass die Initialisierung des Link-Cut-Baums in der Zeit . Während ich alle dort zitierten Artikel durcharbeite, scheint es mir, dass es insgesamt Zeit O ( n log n ) braucht , wenn wir einen Link-Cut-Baum über Operation Link erstellen .
Verstehe ich etwas falsch? Kann die Initialisierung eines Link-Cut-Baums in der Zeit ?
quelle