Treap

Treap

In der Informatik ist ein Treap (Binary search Tree + Heap, wörtlich Haufen), auch Baufen, ein binärer Suchbaum. Jeder Knoten x besteht aus zwei Elementen:

  • x.key (Element)
  • x.priority (Priorität)

Treaps wurden im Jahr 1996 von Cecilia R. Aragon und Raimund G. Seidel (Universität des Saarlandes) erfunden.

Inhaltsverzeichnis

Elemente

Sie erfüllen die Eigenschaften des binären Suchbaums (Binary search Tree). Das bedeutet:

  • Die Elemente y im linken Teilbaum von x erfüllen: key(y) < key(x)
  • Die Elemente y im rechten Teilbaum von x erfüllen: key(y) > key(x)

Prioritäten

Prioritäten erfüllen die Eigenschaften des Heaps. Das bedeutet:

  • Alle Prioritäten sind verschieden (Zufallszahlen)
  • Die Wurzel hat die kleinste Priorität (oberstes Element)
  • Wenn y ein Kind von x ist, dann gilt: prio(y) > prio(x)

Suche nach einem Element

Die Suche erfolgt wie in einem binären Suchbaum. Der zu suchende Wert k wird mit dem Wert der Wurzel verglichen. Ist k größer, vergleicht man den Wert mit dem nächsten Knoten im rechten Teilbaum, wenn kleiner, dann im linken. Zu erwartende Laufzeit: \mathcal{O}(\log n)

Einfügen eines Elementes

Um ein Element e in einen Treap einzufügen, erstellt man einen neuen Knoten x, speichert das Element e in x.key und wählt eine zufällige Priorität für x.priority. Nun fügt man den Knoten mittels x.key gemäß den Eigenschaften des Binären Suchbaums in den Treap ein. Da durch den neuen Knoten nun die Heap-Eigenschaft verletzt sein könnte, rotiert man den Knoten nun solange hinauf, bis die Heap-Bedingung wieder erfüllt ist.

Zu erwartende Laufzeit: \mathcal{O}(\log n). Die zu erwartende Tiefe ist logarithmisch. Die Anzahl der zu erwartenden Rotationen ist 2.

Entfernen eines Elementes

  • Man sucht die Position des zu entfernenden Knotens x im Baum
  • Man wechselt die Priorität auf +∞ (unendlich)
  • Man rotiert den zu entfernenden Knoten zu der Seite hin, wo die kleinere Priorität ist, bis die Heap-Bedingung erfüllt ist
  • Das Element ist jetzt ein Blatt und kann gelöscht werden

Zu erwartende Laufzeit: \mathcal{O}(\log n). Die zu erwartende Tiefe ist logarithmisch. Die Anzahl zu erwartender Rotationen ist 2.

Kleinstes / größtes Element finden

Da die Elemente in einem Treap in der Ordnung eines normalen Binären Suchbaums gespeichert sind, ist das kleinste Element ganz links unten, und das größte Element ganz rechts unten zu finden. Somit muss man, um das kleinste Element zu finden, immer in den linken Teilbaum absteigen, und um das größte Element zu finden immer in den rechten Teilbaum absteigen

Zu erwartende Laufzeit: \mathcal{O}(\log n), da die zu erwartende Tiefe logarithmisch ist.

Alle Elemente auflisten

  • Gibt alle Elemente in aufsteigender Reihenfolge aus
  • Wird durch den in-order Durchlauf durchgeführt (zwischen den zwei Teilbäumen)

Laufzeit ist \mathcal{O}(n).

Literatur

Weblinks


Wikimedia Foundation.

Игры ⚽ Нужно сделать НИР?

Schlagen Sie auch in anderen Wörterbüchern nach:

  • treap — treáp ( puri), s.n. – (Olt.) Groapă în care se pune mîncarea cîinilor la tîrlă. sb. trap (Candrea). Trimis de blaurb, 30.03.2009. Sursa: DER …   Dicționar Român

  • Treap — In computer science, a treap is a binary search tree that orders the nodes by adding a random priority attribute to a node, as well as a key. Citation | title=Introduction to Algorithms, Second Edition publisher=MIT Press and McGraw Hill |… …   Wikipedia

  • Treap — En informatique, un treap est un arbre binaire de recherche qui ordonne les données en utilisant une priorité en plus de la clé propre à l arbre de recherche. Les données sont organisées de manière à ce que les clés forment un arbre binaire de… …   Wikipédia en Français

  • Datenstrukturen — In der Informatik ist eine Datenstruktur ein mathematisches Objekt zur Speicherung von Daten. Es handelt sich um eine Struktur, weil die Daten in einer bestimmten Art und Weise angeordnet und verknüpft werden, um den Zugriff auf sie und ihre… …   Deutsch Wikipedia

  • Datenstruktur — In der Informatik ist eine Datenstruktur ein mathematisches Objekt zur Speicherung von Daten. Es handelt sich um eine Struktur, weil die Daten in einer bestimmten Art und Weise angeordnet und verknüpft werden, um den Zugriff auf sie und ihre… …   Deutsch Wikipedia

  • Deap — In der Informatik ist ein Heap (wörtlich Haufen oder Halde) eine zumeist auf Bäumen basierende abstrakte Datenstruktur. In einem Heap können Objekte oder Elemente abgelegt und aus diesem wieder entnommen werden. Sie dienen damit der Speicherung… …   Deutsch Wikipedia

  • Doppelheap — In der Informatik ist ein Heap (wörtlich Haufen oder Halde) eine zumeist auf Bäumen basierende abstrakte Datenstruktur. In einem Heap können Objekte oder Elemente abgelegt und aus diesem wieder entnommen werden. Sie dienen damit der Speicherung… …   Deutsch Wikipedia

  • Max-Heap — In der Informatik ist ein Heap (wörtlich Haufen oder Halde) eine zumeist auf Bäumen basierende abstrakte Datenstruktur. In einem Heap können Objekte oder Elemente abgelegt und aus diesem wieder entnommen werden. Sie dienen damit der Speicherung… …   Deutsch Wikipedia

  • Min-Heap — In der Informatik ist ein Heap (wörtlich Haufen oder Halde) eine zumeist auf Bäumen basierende abstrakte Datenstruktur. In einem Heap können Objekte oder Elemente abgelegt und aus diesem wieder entnommen werden. Sie dienen damit der Speicherung… …   Deutsch Wikipedia

  • Binary search tree — In computer science, a binary search tree (BST) is a binary tree data structurewhich has the following properties: *each node (item in the tree) has a value; *a total order (linear order) is defined on these values; *the left subtree of a node… …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”