Aleph-w  1.5a.2
Biblioteca general de algoritmos y estructuras de datos
 Todo Clases Archivos Funciones Variables 'typedefs' Enumeraciones Amigas Grupos Páginas
Priority_Queue.H
1 # ifndef AH_PRIORITY_QUEUE_H
2 # define AH_PRIORITY_QUEUE_H
3 
4 # include <tpl_dynBinHeap.H>
5 
6 namespace Aleph {
7 
24  template <typename T, class Compare = Aleph::less<T> >
25 class priority_queue : private Aleph::DynBinHeap<T, Compare>
26 {
27 public:
28 
30  typedef T value_type;
31 
33  priority_queue() { /* empty */ }
34 
36  template <class Container>
37  priority_queue(Container & cont)
38  {
39  const typename Container::iterator end = cont.end();
40 
41  for (typename Container::iterator it(cont.begin());
42  it != end; this->insert(*it++));
43  }
44 
47  template <class Itor>
48  priority_queue(Itor beg, const Itor & end)
49  {
50  Aleph::verify_iterators (beg, end);
51 
52  while (beg != end)
53  this->insert(*beg++);
54  }
55 
59  T & push(const T & value) { return this->insert(value); }
60 
63  void pop() { this->getMin(); }
64 
67  const T & top() { return Aleph::DynBinHeap<T, Compare>::top(); }
68 
70  bool empty() const { return this->is_empty(); }
71 
73  size_t size() const { return Aleph::DynBinHeap<T, Compare>::size(); }
74 };
75 
76 } // end namespace Aleph
77 
78 # endif // AH_PRIORITY_QUEUE_H
T value_type
Tipo de valor que almacena la cola de prioridad.
Definition: Priority_Queue.H:30
T & push(const T &value)
Definition: Priority_Queue.H:59
T & insert(const T &item)
Definition: tpl_dynBinHeap.H:103
priority_queue()
Instancia una cola de prioridad vacía.
Definition: Priority_Queue.H:33
T getMin()
Definition: tpl_dynBinHeap.H:138
bool empty() const
Retorna true si la cola de prioridad está vacía.
Definition: Priority_Queue.H:70
Definition: tpl_dynBinHeap.H:26
void pop()
Definition: Priority_Queue.H:63
Definition: Priority_Queue.H:25
const size_t & size() const
Retorna la cardinalidad del heap.
Definition: tpl_binHeap.H:706
priority_queue(Itor beg, const Itor &end)
Definition: Priority_Queue.H:48
const T & top()
Definition: Priority_Queue.H:67
size_t size() const
Retorna la cantidad de elementos de la cola.
Definition: Priority_Queue.H:73
T & top() const
Definition: tpl_dynBinHeap.H:216
bool is_empty() const
Retorna true si el heap está vacío.
Definition: tpl_binHeap.H:709
priority_queue(Container &cont)
Instancia una cola con todos los elementos del contenedor cont.
Definition: Priority_Queue.H:37

Leandro Rabindranath León