was ist der unterschied zwischen Heap und binary search Tree?

4 Antworten

Bei einem Binary Search Tree sind die Elemente/Schlüssel (von links nach rechts) sortiert und typischerweise gibt es keine doppelten Elemente. Jeder Knoten enthält maximal zwei Kindknoten.

Bei einem Heap Tree gibt es allenfalls eine Ordnung von oben nach unten. Entweder muss der Schlüssel des Elternknoten stets kleiner im Wert sein, als seine Kindknoten (Min-Heap) oder größer (Max-Heap). Duplikate sind in so einer Baumstruktur erlaubt.


YaHobby 
Fragesteller
 26.02.2024, 17:07

was ist der Unterschied zwischen element und schlüssel

0
regex9  26.02.2024, 17:14
@YaHobby

Genau genommen ist ein Element das, was ein Knoten im Baum speichert. Jedes Element lässt sich durch einen Schlüssel identifizieren.

2
KarlRanseierIII  26.02.2024, 17:10

Danke für den Aspekt der Eindeutigkeit, den habe ich übersehen.

1

Dazu müßtest Du Dir die Details zu beiden DS anschauen.

Beim binären Suchbaum herrscht eine totale Ordnung. Egal welchen Unterbaum Du Dir anschaust, die Ordnung ist immer so, daß auf einem Zweig alles kleiner, auf dem anderen alles größer ist.

Der binäre Heap ortientiert sich an den Anforderungen einer Prioritätswarteschlange, die Ordnung ist (als Baum visualisiert) vertikal gefolgt von horizontal.

Der Suchbaum soll eben insert, find, remove effektiv umsetzen, der heap insert, remove, ExtractMin, DecreaseKey.

Hey,

ich weiß leider nicht wie viel Erfahrung mit Sortieralgorithmen du bisher hattest, deshalb werde ich es eher allgemeiner erklären:

Ein Heap ist eine Baumstruktur, bei der die Elemente so angeordnet sind, dass das größte oder kleinste Element immer an der Wurzel (ganz oben) steht. Dadurch kann man das größte oder kleinste Element schnell finden und entfernen. Heaps werden oft für Prioritätswarteschlangen verwendet.

Ein Binary Search Tree (Binärer Suchbaum) ist eine Baumstruktur, bei der jedes Element so angeordnet ist, dass alle Elemente im linken Teilbaum kleiner und im rechten Teilbaum größer als das Wurzelelement sind. Dadurch kann man Elemente effizient suchen, einfügen und löschen.

Der Unterschied liegt also lediglich an der Organisation der Elemente.

Liebe Grüße,
Marcel

Woher ich das weiß:Studium / Ausbildung – Professionell & privat in Softwareentw., Selbststudium.

Heap ist ein Datenspeicherort, wohingegen ein binary search tree eine Datenstruktur ist.

Woher ich das weiß:Hobby

YaHobby 
Fragesteller
 26.02.2024, 16:58

aber heap ist ja auch ein baum

0
YaHobby 
Fragesteller
 26.02.2024, 18:19
@CSANecromancer

man ey sach ma arbeitest du bei der nsa und hast den cosenamen Citizen Z

0
CSANecromancer  26.02.2024, 18:50
@YaHobby

Nein, ich arbeite als Softwareentwickler. Von daher muss ich extrem genau sein, denn z.B. der Computer und darauf laufende Compiler haben 0,0 Verständnis für Ungenauigkeiten.

1
YaHobby 
Fragesteller
 26.02.2024, 19:44
@CSANecromancer

nene musst du mal machen, auf netflix nur die ersten 2 Folgen, da ist so ein Computer Profi, Citizen Z von der NSA im Camp Northern Light, der bist einfach du oder du bist er ? gönn dir mal wird dir safe gefallen

1
CSANecromancer  28.02.2024, 01:16
@YaHobby

So, hab mal reingeschaut. Ist nicht so ganz mein Geschmack, aber ist ok. Nur mit Citizen Z hast du ziemlich unrecht. Jup, ich kann pedantisch sein und bemühe mich um Korrektheit bei technischen Begriffen, aber da hören die Parallelen auch schon auf. :)

0