Generated on Mon Jun 23 16:24:56 2008 for BIU-1.7.0 by doxygen 1.5.1

src/biu/Graph_UD.hh

Go to the documentation of this file.
00001 #ifndef GRAPH_UD_HH_
00002 #define GRAPH_UD_HH_
00003 
00004 #include <vector>
00005 #include <set>
00006 #include <string>
00007 #include <ostream>
00008 
00009 namespace biu
00010 {
00011 
00012 
00018 class Graph_UD
00019 {
00020     
00021 protected:
00022 
00024     std::vector< std::set<size_t> > adjList;  
00025     
00026 
00027 public:
00028     
00029       // component label representation
00030     typedef std::vector<size_t> CompLabel;
00031 
00034     Graph_UD(size_t nodeNumber = 0);
00035     
00037     virtual ~Graph_UD();
00038     
00042     void setNodeNumber(const size_t n);
00043     
00045     void addEdge(const size_t n1, const size_t n2);
00046     
00048     void remEdge(const size_t n1, const size_t n2);
00049     
00052     bool isEdge(const size_t n1, const size_t n2);
00053     
00056     size_t nodes() const;
00057     
00060     size_t edges() const;
00061 
00065     size_t degree(const size_t n) const;
00066 
00070     size_t connectedComponents(CompLabel & compID) const;
00071     
00073     void printDOT( std::ostream & out ) const;
00074 
00075 protected:
00076 
00084     void labelAdjacentNodes( const size_t curNode, CompLabel & compID, const size_t label) const;
00085 
00086 };
00087 
00088 }
00089 
00090 #endif /*GRAPH_UD_HH_*/