Prüfen, ob 2-Baum-Knoten (dh Vorfahr-Abkömmling)Prüfen, ob 2 Baumknoten beziehen (Vorfahre/Abkömmling) in O (1) mit Vorverarbeitungseinheit
- es in O lösen verwandt sind (1) Zeit, mit O (N) -Raum (N = Anzahl der Knoten)
- Vorverarbeitung wird erlaubt
Fertig. Ich werde zu meiner Lösung (Ansatz) gehen. Bitte hör auf, wenn du dich zuerst selbst denken willst.
Für eine Vorbearbeitung habe ich beschlossen, eine Pre-Order (zuerst durch die Wurzel gehen rekursiv, dann Kinder) zu tun und ein Etikett zu jedem Knoten zu geben.
Lassen Sie mich die Etiketten im Detail erklären. Jedes Etikett besteht aus durch Komma getrennten natürlichen Zahlen wie "1,2,1,4,5" - die Länge dieser Sequenz ist gleich (die Tiefe des Knotens + 1). Z.B. das Label der Wurzel ist "1", die Kinder der Wurzel haben die Beschriftungen "1,1", "1,2", "1,3" usw .. Die Knoten der nächsten Ebene haben die Bezeichnungen "1,1,1" , "1,1,2", ..., "1,2,1", "1,2,2", ...
Angenommen, "die Bestellnummer" eines Knotens ist der "1-basierten Index dieses Knotens" in der Kinderliste der Eltern.
Allgemeine Regel: Das Label des Knotens besteht aus dem übergeordneten Label gefolgt von einem Komma und "die Bestellnummer" des Knotens.
Um zu beantworten, ob zwei Knoten verwandt sind (d. H. Vorfahre-Nachkommen) in O (1), werde ich überprüfen, ob die Beschriftung eines der beiden "ein Präfix" des anderen Labels ist. Obwohl ich nicht sicher bin, ob solche Etiketten als O (N) -Raum angesehen werden können.
Alle Kritiker mit Fixes oder einem alternativen Ansatz erwartet.
das ist O (N^2) Raum im schlimmsten Fall Szenario, das jeder Knoten hat ein Kind (eine Nudel). – WeaselFox