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

graph Class Reference

A generic graph class. More...

#include <graph.h>

Inheritance diagram for graph:

Inheritance graph
[legend]
Collaboration diagram for graph:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 graph ()
 ~graph ()
graph_object * clone () const
graph * cloneAll () const
int addNode (node *)
node * getNode (unsigned int num)
void addEdge (edge *)
edge * findDirectedEdge (unsigned int from, unsigned int to)
edge * findEdge (unsigned int from, unsigned int to)
bool relax (edge *e, int weightIndex)
bool relaxReverseEdge (edge *e, int weightIndex)
node * getRandomNode ()
edge * getRandomEdge ()
node_iterator getNodeIter () const
node * nodeIterNext (node_iterator &) const
edge_iterator getEdgeIter () const
edge * edgeIterNext (edge_iterator &) const
void removeEdge (edge *)
node * removeNode (node *, unsigned int &)
void removeNode (node *n)
void removeNode (unsigned int nodeNum)
int getNumEdges ()
int getNumNodes ()
std::vector< node * > * getReachableNodes (node *start)
bool verifyGraph () const
void Print (std::ostream &) const
void printStats ()

Private Attributes

std::vector< node * > _nodes
std::vector< edge * > _edges

Detailed Description

A generic graph class.


Constructor & Destructor Documentation

graph::graph (   ) 
 

graph::~graph (   ) 
 


Member Function Documentation

void graph::addEdge (  edge *   ) 
 

int graph::addNode (  node *   ) 
 

graph_object * graph::clone (   )  const [virtual]
 

Implements graph_object.

graph * graph::cloneAll (   )  const
 

edge * graph::edgeIterNext (  edge_iterator &   )  const
 

edge * graph::findDirectedEdge (  unsigned int  from,
unsigned int  to
) 
 

edge * graph::findEdge (  unsigned int  from,
unsigned int  to
) 
 

edge_iterator graph::getEdgeIter (   )  const
 

node * graph::getNode (  unsigned int  num  ) 
 

node_iterator graph::getNodeIter (   )  const
 

int graph::getNumEdges (   ) 
 

int graph::getNumNodes (   ) 
 

edge * graph::getRandomEdge (   ) 
 

node * graph::getRandomNode (   ) 
 

vector< node * > * graph::getReachableNodes (  node *  start  ) 
 

node * graph::nodeIterNext (  node_iterator &   )  const
 

void graph::Print (  std::ostream &   )  const [virtual]
 

Reimplemented from graph_object.

void graph::printStats (   ) 
 

bool graph::relax (  edge *  e,
int  weightIndex
) 
 

bool graph::relaxReverseEdge (  edge *  e,
int  weightIndex
) 
 

void graph::removeEdge (  edge *   ) 
 

void graph::removeNode (  unsigned int  nodeNum  )  [inline]
 

void graph::removeNode (  node *  n  )  [inline]
 

node * graph::removeNode (  node *  ,
unsigned int & 
) 
 

bool graph::verifyGraph (   )  const
 


Member Data Documentation

std::vector<edge *> graph::_edges [private]
 

std::vector<node *> graph::_nodes [private]
 


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