00001
00002
00003
00004
00005
00006
00007
00008 #ifndef _GRAPH_H
00009 #define _GRAPH_H
00010
00011 #include <vector>
00012
00013 using namespace std;
00014
00019 class Graph
00020 {
00021 public:
00026 Graph(unsigned n);
00027
00034 inline int & operator()(unsigned f, unsigned c)
00035 {
00036 assert(f<matriz.size() && c<matriz.size());
00037 assert(f>=0 && c>=0);
00038 accesos++;
00039
00040 return(matriz[f][c]);
00041 }
00042
00047 unsigned size();
00048
00052 void print();
00053
00059 unsigned nodoAleat();
00060
00069 void grafoAleat(int min, int max);
00070
00079 void grafoAleatND(int min, int max);
00080
00085 unsigned getAccesos() ;
00086
00090 void initAccesos();
00091
00098 void conectar(int n1, int n2, float grado_conect);
00099
00100 private:
00101 unsigned tam;
00102 unsigned accesos;
00103 vector< vector<int> > matriz;
00104
00105 };
00106 #endif
00107