00001
00002
00003
00004
00005
00006
00007
00008
00009 #ifndef _GRAPH_H
00010 #define _GRAPH_H
00011
00012 #include <vector>
00013
00014 using namespace std;
00015
00020 class Graph
00021 {
00022 public:
00023
00024 vector< vector<int> > matriz;
00025 unsigned tam;
00026 unsigned accesos;
00027
00032 Graph(unsigned n);
00033
00040 inline int & operator()(unsigned f, unsigned c)
00041 {
00042 accesos++;
00043 assert(f>=0 && c>=0);
00044 return matriz[(f>=tam) ? tam-1 : f][(c>=tam) ? tam-1 : c];
00045 }
00046
00051 unsigned size();
00052
00056 void print();
00057
00063 unsigned numAleat();
00064
00073 void grafoAleat(int min, int max);
00074
00083 void grafoAleatND(int min, int max);
00084
00089 unsigned getAccesos() ;
00090
00091
00095 void initAccesos(){
00096 accesos = 0;
00097 }
00098
00107 void conectar(int n1, int n2, float grado_conect);
00108
00109 };
00110 #endif
00111