A heap may refer to any of the following:
1. A large, dynamic pool of memory that can be utilized by data that are created when a program executes. The heap is not to be confused with a stack, whose memory allocation is predetermined in LIFO order.
2. A specialized data structure that is both partially sorted and tree based in the respect that all parent nodes are larger than those of the children. A heap is a complete tree because every level is filled (left to right) before adding a node to the next level.