d_ary_heap Sınıfı
Giriş
fibonacci_heap Sınıfı
Constructor - type + comparator
En küçük elemanı top() ile almak için > karşılaştırması yaparız. Şöyle yaparız.
Şöyle yaparız.
push metodu
Örnek
Şöyle yaparız.
Şöyle yaparız.
Giriş
Şu satırı dahil ederiz.
#include <boost/heap/d_ary_heap.hpp>
Constructor
Şöyle yaparız.
using NodeID = std::uint32_t;
using EdgeWeight = std::int32_t;
using HeapData = std::pair<EdgeWeight, NodeID>;
using HeapContainer = boost::heap::d_ary_heap<
HeapData,
boost::heap::arity<4>,
boost::heap::mutable_<true>,
boost::heap::compare<std::greater<HeapData>>>;
using HandleType = HeapContainer::handle_type;
HeapContainer heap;
push metodu
Şöyle yaparız.
auto const none = heap.s_handle_from_iterator(heap.end());
auto const handle = heap.push(std::make_pair(100, 1));
assert(handle != none);
fibonacci_heap Sınıfı
Giriş
Şu satırı dahil ederiz
#include <boost/heap/fibonacci_heap.hpp>
En küçük elemanı top() ile almak için > karşılaştırması yaparız. Şöyle yaparız.
struct rnn
{
float distance;
int a, b;
rnn(int a, int b, float dist) : a(a), b(b), distance(dist) { }
};
struct compare_nn
{
//for min heap implementation
bool operator()(const rnn& a, const rnn& b) const
{
return a.distance > b.distance;
}
};
boost::heap::fibonacci_heap<rnn, boost::heap::compare<compare_nn>> heap;
pop metoduŞöyle yaparız.
heap.pop();
Örnek
Şöyle yaparız.
fibonacci_heap<int> heap;
heap.push(0);
heap.push(1);
heap.push(3);
heap.push(2);
ÖrnekŞöyle yaparız.
heap.push(rnn(1, 2, 10))
top metodu
Şöyle yaparız.
pairing_heap Sınıfı
Şöyle yaparız.
Şöyle yaparız.
Şöyle yaparız.
Şöyle yaparız.
Şöyle yaparız.
cout << "Min node: " << heap.top().a << endl;
pairing_heap Sınıfı
Giriş
Şu satırı dahil ederiz.
#include <boost/heap/pairing_heap.hpp>
Constructor
En büyük elemanı top() ile almak için şöyle yaparız.
pairing_heap<float> pq;
erase metoduŞöyle yaparız.
auto handle = pq.push(3.1);
pq.erase(handle); // remove an element by handle
push metodu
Şöyle yaparız.
auto handle = pq.push(3.1);
s_handle_from_iterator metoduŞöyle yaparız.
using Heap = boost::heap::pairing_heap<float>;
Heap pq;
...
pq.update(Heap::s_handle_from_iterator(pq.begin()), pq.top()*2);
top metodu
Şöyle yaparız.
cout << "pq top=" << pq.top() << endl; // a const_reference to the max element.
Hiç yorum yok:
Yorum Gönder