Heap adalah struktur data yang terdiri dari "node" yang berisi nilai. Heap tipikal memiliki node root di bagian atas, yang mungkin memiliki dua atau lebih node child tepat di bawahnya. Setiap node dapat memiliki dua atau lebih child node, yang berarti heap menjadi lebih luas dengan setiap child node. Ketika ditampilkan secara visual, heap terlihat seperti pohon terbalik dan bentuk umumnya adalah heap.
Sementara setiap node dalam heap mungkin memiliki dua atau lebih node child (juga disebut "children"), sebagian besar heap membatasi setiap node untuk dua child. Jenis heap ini juga disebut heap biner dan dapat digunakan untuk menyimpan data yang diurutkan. Misalnya, "binary max heap" menyimpan nilai tertinggi di node root. Nilai tertinggi kedua dan ketiga disimpan di heap child dari root nodes. Sepanjang root, setiap node memiliki nilai yang lebih besar daripada salah satu dari node child. Sebuah "binary min heap" adalah kebalikannya, di mana root node menyimpan nilai terendah dan setiap node memiliki nilai lebih rendah daripada childern.
Dalam ilmu komputer, heap sering digambarkan sebagai diagram sederhana. Namun, sebenarnya menyimpan data dalam heap lebih kompleks. Untuk membuat heap, pemrogram harus menulis algoritme individual untuk memasukkan dan menghapus data . Nilai - nilai yang dimasukkan ke dalam heap biasanya disimpan dalam array , yang dapat direferensikan oleh sebuah program . Karena data dalam heap sudah diurutkan, ini menyediakan cara yang efisien untuk mencari nilai tertentu.
CATATAN: "The heap" juga merupakan istilah pemrograman yang dapat digunakan untuk menggambarkan memori yang dialokasikan secara dinamis. Blok memori ini dapat diakses oleh aplikasi yang aktif . Karena memori di heap dialokasikan secara dinamis, memori dapat bertambah atau berkurang tergantung pada seberapa banyak memori yang digunakan.