Main Page | Namespace List | Class Hierarchy | Class List | File List | Namespace Members | Class Members | File Members | Related Pages

heap2< OBJ, HashKey, EqKey, CmpKey > Class Template Reference

#include <heap2.h>

List of all members.

Public Member Functions

 heap2 ()
 ~heap2 ()
void reset ()
 Remove all objects from queue.

void add (OBJ val)
 Add object into heap2.

void decreaseKey (OBJ val)
 Indicate that the key for a particular object has decreased.

bool isIn (OBJ val)
 Returns true if the object is in the heap2.

OBJ remove ()
 Remove the item with the lowest key from the heap2 & re-heapify.

void pop ()
OBJ top ()
OBJ find (OBJ val)
 find this object in the heap and return

bool empty ()
 Returns true if no items are in the heap2.

unsigned size ()
heap2iterator getIterator () const
bool iterNext (heap2iterator &it, OBJ &val) const

Private Types

typedef __gnu_cxx::hash_map<
OBJ, unsigned int, HashKey,
EqKey > 
IndexTable

Private Member Functions

void heapifyUp (unsigned int index)
 Verify that the heap is internally consistent.

void heapifyDown (unsigned int index)

Private Attributes

std::vector< OBJ > _elts
IndexTable table

template<typename OBJ, class HashKey, class EqKey, class CmpKey>
class heap2< OBJ, HashKey, EqKey, CmpKey >


Member Typedef Documentation

template<typename OBJ, class HashKey, class EqKey, class CmpKey>
typedef __gnu_cxx::hash_map<OBJ, unsigned int, HashKey, EqKey > heap2< OBJ, HashKey, EqKey, CmpKey >::IndexTable [private]
 


Constructor & Destructor Documentation

template<typename OBJ, class HashKey, class EqKey, class CmpKey>
heap2< OBJ, HashKey, EqKey, CmpKey >::heap2  ) 
 

template<typename OBJ, class HashKey, class EqKey, class CmpKey>
heap2< OBJ, HashKey, EqKey, CmpKey >::~heap2  ) 
 


Member Function Documentation

template<typename OBJ, class HashKey, class EqKey, class CmpKey>
void heap2< OBJ, HashKey, EqKey, CmpKey >::add OBJ  val  ) 
 

Add object into heap2.

template<typename OBJ, class HashKey, class EqKey, class CmpKey>
void heap2< OBJ, HashKey, EqKey, CmpKey >::decreaseKey OBJ  val  ) 
 

Indicate that the key for a particular object has decreased.

template<typename OBJ, class HashKey, class EqKey, class CmpKey>
bool heap2< OBJ, HashKey, EqKey, CmpKey >::empty  ) 
 

Returns true if no items are in the heap2.

template<typename OBJ, class HashKey, class EqKey, class CmpKey>
OBJ heap2< OBJ, HashKey, EqKey, CmpKey >::find OBJ  val  ) 
 

find this object in the heap and return

template<typename OBJ, class HashKey, class EqKey, class CmpKey>
heap2iterator heap2< OBJ, HashKey, EqKey, CmpKey >::getIterator  )  const [inline]
 

template<typename OBJ, class HashKey, class EqKey, class CmpKey>
void heap2< OBJ, HashKey, EqKey, CmpKey >::heapifyDown unsigned int  index  )  [private]
 

template<typename OBJ, class HashKey, class EqKey, class CmpKey>
void heap2< OBJ, HashKey, EqKey, CmpKey >::heapifyUp unsigned int  index  )  [private]
 

Verify that the heap is internally consistent.

Fails assertion if not.

template<typename OBJ, class HashKey, class EqKey, class CmpKey>
bool heap2< OBJ, HashKey, EqKey, CmpKey >::isIn OBJ  val  ) 
 

Returns true if the object is in the heap2.

template<typename OBJ, class HashKey, class EqKey, class CmpKey>
bool heap2< OBJ, HashKey, EqKey, CmpKey >::iterNext heap2iterator it,
OBJ &  val
const [inline]
 

template<typename OBJ, class HashKey, class EqKey, class CmpKey>
void heap2< OBJ, HashKey, EqKey, CmpKey >::pop  )  [inline]
 

template<typename OBJ, class HashKey, class EqKey, class CmpKey>
OBJ heap2< OBJ, HashKey, EqKey, CmpKey >::remove  ) 
 

Remove the item with the lowest key from the heap2 & re-heapify.

template<typename OBJ, class HashKey, class EqKey, class CmpKey>
void heap2< OBJ, HashKey, EqKey, CmpKey >::reset  ) 
 

Remove all objects from queue.

template<typename OBJ, class HashKey, class EqKey, class CmpKey>
unsigned heap2< OBJ, HashKey, EqKey, CmpKey >::size  )  [inline]
 

template<typename OBJ, class HashKey, class EqKey, class CmpKey>
OBJ heap2< OBJ, HashKey, EqKey, CmpKey >::top  )  [inline]
 


Member Data Documentation

template<typename OBJ, class HashKey, class EqKey, class CmpKey>
std::vector<OBJ> heap2< OBJ, HashKey, EqKey, CmpKey >::_elts [private]
 

template<typename OBJ, class HashKey, class EqKey, class CmpKey>
IndexTable heap2< OBJ, HashKey, EqKey, CmpKey >::table [private]
 


The documentation for this class was generated from the following file:
Generated on Tue Aug 18 03:42:54 2009 for HOG by doxygen 1.3.4