The implementation of Heap