Simple Application Framework  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
Namespaces | Functions
Saf/Algo/Struct/Heap.h File Reference

The heap data structure and related operations.
More...

#include "../Predicate.h"
#include "../../Type.h"
#include "../../Type/IteratorTraits.h"
#include "../Swap.h"

Go to the source code of this file.

Namespaces

namespace  Saf
 Global library namespace.
namespace  Saf::Algo
 Generic data handling algorithms and structures.
namespace  Saf::Algo::Struct
 Generic data structures.
namespace  Saf::Algo::Struct::Heap
 The heap data structure and related operations.

Functions

template<class RanIter , class Pred >
void Saf::Algo::Struct::Heap::BalanceDown (RanIter begin, Diff node, Diff bottom, Pred pred)
 Percolate the element node to the bottom of a heap.
template<class RanIter , class Pred >
void Saf::Algo::Struct::Heap::BalanceUp (RanIter begin, Diff top, Diff node, Pred pred)
 Percolate the element node up in the heap if the heap property is not satisfied.
template<class RanIter , class Pred >
bool Saf::Algo::Struct::Heap::IsHeap (RanIter begin, RanIter end)
 Check whether the range [begin, end) is a max-heap.
template<class RanIter >
bool Saf::Algo::Struct::Heap::IsHeap (RanIter begin, RanIter end)
 Check whether the range [begin, end) is a max-heap.
template<class RanIter , class Pred >
void Saf::Algo::Struct::Heap::MakeHeap (RanIter begin, RanIter end, Pred pred)
 Convert the range [begin, end) to a max-heap.
template<class RanIter >
void Saf::Algo::Struct::Heap::MakeHeap (RanIter begin, RanIter end)
 Convert the range [begin, end) to a max-heap.
template<class RanIter , class Pred >
void Saf::Algo::Struct::Heap::PopHeap (RanIter begin, RanIter end, Pred pred)
 Pop the maximum from a heap.
template<class RanIter , class Pred >
void Saf::Algo::Struct::Heap::PopHeap (RanIter begin, RanIter end)
 Pop the maximum from a heap.
template<class RanIter , class Pred >
void Saf::Algo::Struct::Heap::PushHeap (RanIter begin, RanIter end, Pred pred)
 Insert a new element to a heap.
template<class RanIter >
void Saf::Algo::Struct::Heap::PushHeap (RanIter begin, RanIter end)
 Insert a new element to a heap.
template<class RanIter , class Pred >
void Saf::Algo::Struct::Heap::SortHeap (RanIter begin, RanIter end, Pred pred)
 Sort the elements in a heap range [begin, end).
template<class RanIter >
void Saf::Algo::Struct::Heap::SortHeap (RanIter begin, RanIter end)
 Sort the elements in a heap range [begin, end).

Detailed Description

The heap data structure and related operations.
Author:
Ondrej Danek ondre.nosp@m.j.da.nosp@m.nek@g.nosp@m.mail.nosp@m..com
Date:
2012