![]() |
|||
![]() |
|
| Für die Datenstruktur Heap gibt es die folgenden zwei Operationen: | |||||
Operationen |
|
||||
| Im Gegensatz zu binären Suchbäumen kann man nicht nach beliebigen Datensätzen suchen oder solche löschen. | |||||
| Wie wird eingefügt? | |||||
Heap einfügen |
Algorithmus zum Einfügen von Schlüssel s | ||||
![]()
|
|||||
| Und nun zum Entfernen des Maximums. Wie war das noch einmal mit dem Maximum beim Heap? | |||||
![]() |
|||||
| Damit ist klar, wo das Maximum im Heap liegt. Wie stellt man die Heap-Struktur wieder her, wenn man das Maximum entfernt hat? | |||||
Maximum entfernen |
Algorithmus zum Maximum entfernen | ||||
| In dem folgenden Experiment kannst du dir Heaps mit unterschiedlich vielen Knoten ansehen, weitere Knoten einfügen und löschen. | |||||
![]() |
|||||
|
Warum ist der Heap eine wichtige Datenstruktur? Betrachte dazu den Aufwand für 'einfügen' und 'Maximum entfernen'. Es werden nie mehr als h Einzelschritte benötigt! Der Aufwand wird also durch die Höhe h des Binärbaumes bestimmt. Als dichter Binärbaum hat der Heap minimale Höhe. |
|||||
![]() |
|||||
|
Die letzte Antwort besagt: Die Höhe h eines Heaps mit n Knoten ist die größte ganze Zahl
Damit folgt die Aussage: |
||||
Aufwand |
Einfügen bzw. Maximum entfernen bei einem Heap mit n Knoten erfordert höchstens
Einzelschritte. |
||||
| Seite 11/11 |