#include #include "boost/heap/fibonacci_heap.hpp" #include "boost/heap/binomial_heap.hpp" #include "boost/heap/d_ary_heap.hpp" template void PrintHeap(HeapType const & heap) { std::cout << "Printing out heap : "; for (auto it = heap.begin(); it != heap.end(); ++it) { std::cout << *it << " "; } std::cout << "\n Printing out heap in order : "; for (auto it = heap.ordered_begin(); it != heap.ordered_end(); ++it) { std::cout << *it << " "; } std::cout << "\n\n"; } int main(int /* argc */, char** /* argv */) { typedef boost::heap::binomial_heap BinomialHeap; BinomialHeap binomial_heap; binomial_heap.push(1); binomial_heap.push(1); // Prints {1,1} and {1,1,1} PrintHeap(binomial_heap); typedef boost::heap::fibonacci_heap FibonacciHeap; FibonacciHeap fibonacci_heap; fibonacci_heap.push(1); fibonacci_heap.push(1); // Prints {1,1} and {1,1} PrintHeap(fibonacci_heap); typedef boost::heap::d_ary_heap, boost::heap::mutable_> BinaryHeap; BinaryHeap binary_heap; binary_heap.push(1); binary_heap.push(1); // Prints {1,1} and {1,1} PrintHeap(binary_heap); }