Was bedeutet es, einen bewurzelten Baum zu bauen? Ich lese die Definition in here, aber selbst wenn wir einen Knoten als Wurzel zuweisen, warum nimmt der Baum nur die folgenden Formen? Ich meine, ich kann einen Wurzelbaum mit 4 Ecken in mehr als den 4 Formen darunter zeichnen? Recht?Was ist ein verwurzelter Baum?
Antwort
Ich denke, der einzige Unterschied besteht darin, dass ein Knoten in dem Baum ein spezieller Startknoten ist.
Normalerweise sind Bäume rekursiv; Alle Baumknoten sind selbst Bäume. Ein "verwurzelter Baum" ist nur einer, bei dem die Kindknoten anders als ein spezieller Elternknoten markiert sind. Das kann bedeuten, dass ein Algorithmus nicht rekursiv implementiert werden kann oder eine spezielle Bedingung für den Umgang mit dem Wurzelknoten hat.
Das Beispiel, das mir in den Sinn kommt, ist ein rot-schwarzer Baum. Knoten in einem rot-schwarzen Baum sind entweder rot oder schwarz gekennzeichnet. Aber es gibt eine spezielle Regel, dass "der Wurzelknoten immer schwarz ist". Das ist eine spezielle Behandlung, die wir auf die Wurzel und nur auf die Wurzel anwenden müssen. Kinder des Wurzelknotens könnten rot sein; Das bedeutet, dass die untergeordneten Knoten der ersten Ebene des Stammknotens nicht als Stammknoten in ihrem eigenen rot-schwarzen Baum behandelt werden können.
So könnte man erwarten ‚Unterscheidung‘ Code wie
if(node.isRoot):
node.Color = black
Ein freier Baum jeder Knoten in einem binären Suchbaum sein würde; Es spielt keine Rolle, welchen Knoten Sie auswählen, Operationen wie Suchen und Einfügen funktionieren immer gleich. Ihre Algorithmen sind rekursiv. Algorithmen über freie Bäume enthalten niemals eine Frage wie "ist es der Wurzelknoten".
- 1. Ist das ein AVL-Baum?
- 2. Was ist eine B-Baum-Seite
- 3. ein Baum
- 4. Was sind Splay-Baum, Rot-Schwarz-Baum, AVL-Baum, B-Baum und T-Baum?
- 5. Bestimmen Sie, ob ein ungerichteter Graph ein Baum ist
- 6. Was ist der Unterschied zwischen Browser-DOM-Baum und Render-Baum
- 7. Was ist eine optimale Datenstruktur für einen Baum von Karten?
- 8. Kann mir jemand sagen, was ist der Unterschied zwischen KD-Baum und R-Baum
- 9. Was ist los mit meinem KD-Baum? (K = 2)
- 10. Was ist beschnittener und ungeschnittener Baum in Weka?
- 11. Was ist die Laufzeit von 2-4 Baum löschen
- 12. Was ist ein PHP-Framework und was ist ein guter?
- 13. Google AMP: Was ist ein Layout? Was ist ein Behälter?
- 14. überprüfen, ob ein Baum vollständig ist Standard ml
- 15. Was ist ein Protokoll?
- 16. Was ist ein Objekt?
- 17. Was ist ein "Pinsel"?
- 18. Was ist ein UIViewController
- 19. Was ist ein Kontextwechsel?
- 20. Was ist ein Inferenztyp?
- 21. Was ist ein Pastenskript?
- 22. Was ist ein Gruppenleiter
- 23. Was ist ein Bitmuster?
- 24. Was ist ein CGVector?
- 25. Was ist ein tGrid?
- 26. Was ist ein LPTHREAD_START_ROUTINE?
- 27. Was ist ein ImageObserver?
- 28. Was ist ein "Doppelstapelfehler"?
- 29. Was ist ein Pushlock?
- 30. Was ist ein Arbeitssatz?
Welche zusätzliche Form können Sie zeichnen? – Thilo
Ich habe gerade daran gedacht, die Ausrichtung von links nach rechts zu ändern. Weißt du, dass es genauso ist, ob ich die Richtung ändere oder die Grafik auf den Kopf hebe? –
Nun, "gleich genug", um keinen wirklichen Unterschied zu machen (hängt natürlich vom Kontext ab). Dies wird Isomorphismus genannt. Sie können die Grafik auf den Kopf stellen, aber es ist immer noch die gleiche Grafik (für einige Definition derselben). – Thilo