395 Stimmen

Was sind die Anwendungen von Binärbäumen?

Ich frage mich, was die besonderen Anwendungen von Binärbäumen sind. Könnten Sie einige konkrete Beispiele nennen?

10voto

Yin Zhu Punkte 16798

In C++ STL und vielen anderen Standardbibliotheken in anderen Sprachen, wie Java und C#. Binäre Suchbäume werden zur Implementierung von Set und Map verwendet.

8voto

rohit Punkte 311

Eine der wichtigsten Anwendungen von Binärbäumen sind ausgeglichen binäre Suchbäume wie:

Diese Art von Bäumen hat die Eigenschaft, dass der Höhenunterschied zwischen dem linken und dem rechten Teilbaum klein gehalten wird, indem jedes Mal, wenn ein Knoten eingefügt oder gelöscht wird, Operationen wie Rotationen durchgeführt werden.

Dadurch bleibt die Gesamthöhe des Baums in der Größenordnung von log n und die Operationen wie Suche, Einfügen und Löschen von Knoten werden in O(log n)-Zeit durchgeführt. Die STL von C++ implementiert diese Bäume auch in Form von Mengen und Karten.

7voto

Aaron Punkte 6808

Sie können als schnelle Möglichkeit zum Sortieren von Daten verwendet werden. Einfügen von Daten in einen binären Suchbaum mit O(log(n)). Dann durchlaufen Sie den Baum, um sie zu sortieren.

5voto

Roman Punkte 61632

Implementierungen von java.util.Set

5voto

Stephan Eggermont Punkte 15743

Auf moderner Hardware ist ein Binärbaum aufgrund des schlechten Cache- und Platzverhaltens fast immer suboptimal. Dies gilt auch für die (halbwegs) ausgewogenen Varianten. Wenn man sie findet, dann dort, wo die Leistung nicht zählt (oder von der Vergleichsfunktion dominiert wird), oder, was wahrscheinlicher ist, aus historischen Gründen oder aus Unwissenheit.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X