Wie berechnet sich die Tiefe eines binären Suchbaums
Ich würde gerne berechnen die Summe der tiefen der einzelnen Knoten in einem Binären Suchbaum.
Den einzelnen tiefen der Elemente, die nicht bereits gespeichert sind.
InformationsquelleAutor der Frage Jon | 2009-12-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
Etwas wie dieses:
Und die Summe der tiefen der jedes Kind:
Nun für eine hoffentlich informative Erklärung in diesem Fall ist Hausaufgaben zu machen. Zählen Sie die Anzahl der Knoten ist ganz einfach. Vor allem, wenn der Knoten ist kein Knoten (
node == null
) es gibt 0 zurück. Wenn es ein Knoten, erste zählt seine selbst (die1
), plus die Anzahl der Knoten in seinem linken Teilbaum plus die Anzahl der Knoten in seinem rechten Teilbaum. Ein anderer Weg, um daran zu denken ist, die Sie besuchen, jeder Knoten über BFS und hinzufügen, um die Anzahl der für jeden Knoten, den Sie besuchen.Die Summe der Tiefe ist ähnlich, außer, statt Sie lediglich eine für jeden Knoten, der Knoten fügt die Tiefe des seiner selbst. Und es weiß die Tiefe seiner selbst, weil seine Eltern es gesagt. Jeder Knoten weiß, dass der Tiefe sind es die Kinder sind, es sind eigene Tiefe plus eins, also wenn man die Tiefe der linken und rechten Kinder eines Knotens, die Sie Ihnen sagen, Ihre Tiefe ist der aktuelle Knoten der Tiefe plus 1.
Wieder, wenn der Knoten ist kein Knoten, es hat keine Tiefe. Also, wenn Sie wollen, dass die Summe der Tiefe aller der root-Knoten die Kinder, übergeben Sie den root-Knoten und dem root-Knoten der Tiefe etwa so:
sumDepthOfAllChildren(root, 0)
Rekursion ist Recht nützlich, es ist einfach eine ganz andere Art des Denkens über die Dinge und braucht übung, sich daran zu gewöhnen
InformationsquelleAutor der Antwort David Brown
InformationsquelleAutor der Antwort Jitendra
Für einen bestimmten Baum die Anzahl der Knoten ist 1 für die Wurzel und die Anzahl der Knoten im linken Teilbaum plus die Anzahl der Knoten im rechten Teilbaum 🙂
Details, wie Sie sicherstellen, dass es tatsächlich ist einen linken oder rechten Teilbaum, "bleibt dem Leser selbst überlassen".
InformationsquelleAutor der Antwort Carl Smotricz
InformationsquelleAutor der Antwort zinovii
Diese Lösung ist sogar noch einfacher.
InformationsquelleAutor der Antwort Soumya Kanti Naskar
InformationsquelleAutor der Antwort Steve B.
InformationsquelleAutor der Antwort GoswamiK
InformationsquelleAutor der Antwort Mark Byers
InformationsquelleAutor der Antwort Chris Cudmore
InformationsquelleAutor der Antwort user4894081