A generic Java implementation of a Heap, using an array. Includes standard functions for a heap, along with a Priority Queue implemented using the heap, and an interface for a heuristic to be used with the heap, such as the provided MinHeap and MaxHeap heuristics.