Professional Documents
Culture Documents
Arboles
Arboles
#include <string>
#include <vector>
#include <algorithm>
#include <list>
#include<stdio.h>
#include<conio.h>
#define DEBUG
#define REP(i,a) for(i=0;i<a;i++)
#define FOR(i,a,b) for(i=a;i<b;i++)
#define ii pair<int,int>
int findSet(int i)
{
return (pset[i]==i)? i:(pset[i]=findSet(pset[i]));
}
void kruskal(int N)
{int sum=0,i;
initSet(N);
sort(grafo.begin(),grafo.end());
for(i=0;i<grafo.size();i++)
{ pair<int,ii>aux=grafo[i];
if(!isSameSet(aux.second.first,aux.second.second))
{ cout<<"pasa en: "<<aux.second.first<<","<<aux.second.second<<endl;
sum=aux.first+sum;
unionSet(aux.second.first,aux.second.second);
}
}
cout<<"el peso"<<sum;
}
int main(){
int V,A,i,a,b,w;
cout<<"\t\tAlgoritmo de kruskal"<<endl;
cout<<"ingrese numero de aristas"<<endl;
cin>>A;
cout<<"ingrese numero de vertices"<<endl;
cin>>V;
cout<<"ingrese desde que vertice a que vertice: "<<endl;
for(i=0;i<A;i++){
kruskal(V);
getch();
return 0;
}
////////////////////////////////////////////////////////////////////////////////
import java.io.*;
class Kruskal
{
public static BufferedReader br =new BufferedReader(new
InputStreamReader(System.in));
static int n;
static int mincost = 0;
public int k, l, num_ed=0;
t[i][1] = l;
t[i][2] = k;
if(num_ed >= n)
{
if(allconnect(i))
return;
}
}
System.out.println("\nNo hay solucion");
}
if(can_reach(1, c, i) == false)
return false;
}
return true;
}
if(can_reach(k, l, i) )
return true;
}
return false;
}
System.out.println("\n\nSolucion : \n");
kr.Kruskals();
System.out.println("\n\n\nEl costo es de: "+ mincost);
}