Heap
|
- This page discusses the heap data structure. For the place where memory is dynamically allocated from, see dynamic memory allocation.
In computer science a heap is a specialized tree-based data structure. Its base datatype (used for node keys) must be an ordered set.
Let A and B be nodes of a heap, such that B is a child of A. The heap must then satisfy the following condition (heap property):
- key(A) ≥ key(B)
This is the only restriction of general heaps. It implies that the greatest (or the smallest, depending on the semantics of a comparison) element is always in the root node. Due to this fact, heaps are used to implement priority queues. The efficiency of heap operations is crucial in several graph algorithms.
The operations commonly performed in a heap are delete-min (removing the root node), decrease-key (updating a key within the heap), and insertion (adding a new key to the heap).
Heaps are used in the sorting algorithm called heapsort.
Variants
External links
- Priority Queues (http://leekillough.com/heaps/) by Lee Killoughde:Heap (Datenstruktur)
es:Montículo fr:Tas he:ערימה (מבנה נתונים) nl:Heap pl:Kopiec (informatyka) sl:Kopica zh:堆 uk:Купа (структура даних)