Dev - C++ - Ayuda No compila!!

 
Vista:
sin imagen de perfil

Ayuda No compila!!

Publicado por Gise (2 intervenciones) el 13/11/2016 20:25:47
No me compila,me lo podrian arreglar por favor...

Algoritmo de Ford Fulkerson

enunciado
La idea es encontrar una ruta de penetración con un flujo positivo neto que una los nodos origen y destino.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
Ford-Fulkerson(G,s,t){
for (cada arco (u,v) de E) {
f[u,v]= 0;
f[v,u]= 0;
}
while (exista un camino p desde s at en la red residual Gf) {
cf(p) = min{cf(u,v) : (u,v) está sobre p};
for (cada arco (u,v) en p) {
f[u,v]= f[u,v] + cf(p) ;
f[v,u]= - f[u,v];
}
}
}
Ford-Fulkerson(G,s,t){
for (cada arco (u,v) de E) {
f[u,v]= 0;
f[v,u]= 0;
}
while (exista un camino p desde s at en la red residual Gf)
{
cf(p) = min{cf(u,v) : (u,v) está sobre p};
for (cada arco (u,v) en p) {
f[u,v]= f[u,v] + cf(p) ;
f[v,u]= - f[u,v];
}
}
}

El otro es este algoritmo de Kruskal

El algoritmo de Kruskal es un algoritmo de la teoría de grafos para encontrar un árbol recubridor mínimo en un grafo conexo y ponderado. Es decir, busca un subconjunto de aristas que, formando un árbol, incluyen todos los vértices y donde el valor total de todas las aristas del árbol es el mínimo. Si el grafo no es conexo, entonces busca un bosque expandido mínimo


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
const int INF = 1000000;
int cn; //cantidad de nodos
vector< vector > ady; //matriz de adyacencia
 
// Devuelve la matriz de adyacencia del arbol minimo.
vector< vector > Grafo :: prim(){
 
// uso una copia de ady porque necesito eliminar columnas
vector< vector > adyacencia = this->ady;
vector< vector > arbol(cn);
vector markedLines;
vector :: iterator itVec;
 
// Inicializo las distancias del arbol en INF.
for(int i = 0; i < cn; i++) arbol[i] = vector (cn, INF);
 
int padre = 0;
int hijo = 0;
while(markedLines.size() + 1 < cn){ padre = hijo;
// Marco la fila y elimino la columna del nodo padre. markedLines.push_back(padre); 
for(int i = 0; i < cn; i++) adyacencia[i][padre] = INF;
 
// Encuentro la menor distancia entre las filas marcadas. 
// El nodo padre es la linea marcada y el nodo hijo es la columna del minimo. 
int min = INF; for(itVec = markedLines.begin(); itVec != markedLines.end(); itVec++) for(int i = 0; i < cn; i++) if(min > adyacencia[*itVec][i]){
min = adyacencia[*itVec][i];
padre = *itVec;
hijo = i;
}
 
arbol[padre][hijo] = min;
arbol[hijo][padre] = min;
}
return arbol;
}
Por favorrr Ayudaaaa
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
-1
Responder