Für Binärbäume: Es besteht keine Notwendigkeit, Baumknotenwerte zu berücksichtigen. Ich interessiere mich nur für verschiedene Baumtopologien mit 'N'-Knoten.
Für den binären Suchbaum : Wir müssen Baumknotenwerte berücksichtigen.
Antworten:
Ich empfehle diesen Artikel von meinem Kollegen Nick Parlante (von damals, als er noch in Stanford war). Die Zählung strukturell unterschiedlicher Binärbäume (Problem 12) hat eine einfache rekursive Lösung (die in geschlossener Form die katalanische Formel ist, die @ codekas Antwort bereits erwähnt hat).
Ich bin mir nicht sicher , wie die Anzahl der strukturell unterschiedliche binäre Suchbäume (BSTs kurz) von der „plain“ Binärbäumen unterscheiden würden - außer , dass, wenn sie von „Baumknotenwerte betrachten“ Sie bedeuten , dass jeder Knoten zB sein kann Jede Zahl, die mit der BST-Bedingung kompatibel ist, dann ist die Anzahl der verschiedenen (aber nicht alle strukturell unterschiedlichen! -) BSTs unendlich. Ich bezweifle, dass meine, ja, bitte klären , was Sie tun , mit einem Beispiel gemein!
Die Gesamtzahl der Binärbäume beträgt =
Die Summierung über i ergibt die Gesamtzahl der binären Suchbäume mit n Knoten.
Der Basisfall ist t (0) = 1 und t (1) = 1, dh es gibt eine leere BST und eine BST mit einem Knoten.
Im Allgemeinen können Sie also die Gesamtzahl der binären Suchbäume mithilfe der obigen Formel berechnen. Im Google- Interview wurde mir eine Frage zu dieser Formel gestellt. Die Frage war, wie viele binäre Suchbäume mit 6 Eckpunkten insgesamt möglich sind. Die Antwort lautet also t (6) = 132
Ich glaube, ich habe dir eine Idee gegeben ...
Die Anzahl der Binärbäume kann anhand der katalanischen Zahl berechnet werden .
Die Anzahl der binären Suchbäume kann als rekursive Lösung angesehen werden. dh Anzahl der binären Suchbäume = (Anzahl der linken binären Suchunterbäume) * (Anzahl der rechten binären Suchunterbäume) * (Möglichkeiten zur Auswahl der Wurzel)
In einer BST spielt nur die relative Reihenfolge zwischen den Elementen eine Rolle. Ohne Verlust der Allgemeinheit können wir also annehmen, dass die verschiedenen Elemente im Baum 1, 2, 3, 4, ...., n sind . Es sei auch die Anzahl der BST durch f (n) für n Elemente dargestellt .
Jetzt haben wir mehrere Fälle für die Auswahl der Wurzel.
...... In ähnlicher Weise können für das i-te Element als Wurzel i-1 Elemente links und ni rechts sein.
Diese Unterbäume sind selbst BST, daher können wir die Formel wie folgt zusammenfassen:
f (n) = f (0) f (n-1) + f (1) f (n-2) + .......... + f (n-1) f (0)
Basisfälle, f (0) = 1, da es genau einen Weg gibt, eine BST mit 0 Knoten zu erstellen. f (1) = 1, da es genau 1 Möglichkeit gibt, eine BST mit 1 Knoten zu erstellen.
Eric Lippert hatte kürzlich eine sehr ausführliche Reihe von Blog-Posts darüber: " Jeder Binärbaum gibt es " und " Jeder Baum gibt es " (plus einige weitere danach).
Als Antwort auf Ihre spezielle Frage sagt er:
Die Anzahl der Binärbäume mit n Knoten ergibt sich aus den katalanischen Zahlen , die viele interessante Eigenschaften haben. Die n-te katalanische Zahl wird durch die Formel (2n) bestimmt! / (n + 1)! n!, das exponentiell wächst.
Binärbaum:
Wir müssen keine Werte berücksichtigen, sondern müssen uns die Struktur ansehen.
Gegeben durch (2 Potenzen n) - n
Beispiel: Für drei Knoten sind es (2 Potenzen 3) -3 = 8-3 = 5 verschiedene Strukturen
binärer Suchbaum:
Wir müssen sogar die Knotenwerte berücksichtigen. Wir nennen es als katalanische Nummer
Gegeben durch 2n C n / n + 1