Documentos de Académico
Documentos de Profesional
Documentos de Cultura
// Constructor.
DisjointSets(int n)
{
// Alojando en la memoria
this->n = n;
parent = new int[n+1];
rnk = new int[n+1];
for (int i = 0; i <= n; i++)
{
rnk[i] = 0;
parent[i] = i;
}
}
int find(int u)
{
if (u != parent[u])
parent[u] = find(parent[u]);
return parent[u];
}
if (rnk[x] == rnk[y])
rnk[y]++;
}
};
int Grafo::kruskalMST()
{
int mst_wt = 0; // Inicializamos el resultado
if (set_u != set_v)
{
cout << u << " - " << v << endl;
mst_wt += it->first;
ds.merge(set_u, set_v);
}
}
return mst_wt;
}
int main()
{
int V = 9, E = 14;
Grafo g(V, E);
g.AñadirBorde(0, 5, 1);
g.AñadirBorde(0, 10, 3);
g.AñadirBorde(1, 2, 2);
g.AñadirBorde(1, 10, 5);
g.AñadirBorde(1, 5, 4);
g.AñadirBorde(2, 1, 3);
g.AñadirBorde(2, 5, 4);
g.AñadirBorde(2, 3, 0);
g.AñadirBorde(4, 2, 5);
cout << "\nEl peso menor del grafo es " << mst_wt;
return 0;
}
min = dist[v];
min_index = v;
return min_index;
dist[i] = Integer.MAX_VALUE;
verticeYaProcesado[i] = false;
dist[src] = 0;
//Encuentra el camino mas corto para todos los vertices
verticeYaProcesado[u] = true;
printSolution(dist, V);
{0, 8, 0, 7, 0, 4, 0, 0, 2},
{0, 0, 2, 0, 0, 0, 6, 7, 0}
};
dijkstra(graph, 0);
int vertices;
int mat[][];
this.vertices = vertices;
mat[ori][des]=peso;
mat[des][ori]=peso;
}
class Resultado {
int padre;
int peso;
vertice = i;
return vertice;
pesos[i] = Integer.MAX_VALUE;
pesos[0]=0;
resultado[0].padre=-1;
mst[vertice]= true;
pesos[j] = mat[vertice][j];
resultado[j].padre=vertice;
resultado[j].peso = pesos[j];
printMst(resultado);
int total_coste_min = 0;
total_coste_min +=resultado[i].peso;
int vertices = 6;
grafo.addEdge(0, 1, 10);
grafo.addEdge(0, 2, 25);
grafo.addEdge(1, 4, 30);
grafo.addEdge(1, 2, 10);
grafo.addEdge(2, 5, 5);
grafo.addEdge(2, 3, 20);
grafo.addEdge(3, 5, 40);
grafo.addEdge(5, 4, 12);
grafo.mst();