#ifndef _HEAP_H #define _HEAP_H #include // Provides NULL #include template class heap { public: heap(); bool is_empty(); bool is_member(Item data); void insert(Item data); Item remove(); void print(); void buildheap(vector& v); void heapsort(vector& v); private: void reheapify_down(); void reheapify_up(); size_t parent(size_t i) { return (i-1)/2; } size_t left(size_t i) { return 2*i+1; } size_t right(size_t i) { return 2*i+2; } vector heapvec; }; #include "heap.cpp" #endif