Galera alguém poderia me ajudar a traduzir um código em c para Assembly MIPS? O código é implementação do Algoritmo de Kruskal. Segue o código.
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
int i,j,k,a,b,u,v,n,ne=1;
int min,mincost=0,cost[9][9],parent[9];
int find(int);
int uni(int,int);
int main ()
{
//clrscr();
printf("\nImplementação de kruskal");
printf("\nEntre com os vertices : ");
scanf("%d",&n);
printf("\ninsira a matriz de adjacência de custos : ");
for (i=1;i<=n;i++)
{
for (j=1;j<=n;j++)
{
scanf("%d",&cost[j]);
if(cost[j]==0)
cost[j]=999;
}
}
printf("As bordas de uma árvore de abrangência de custo mínimo são :");
while (ne < n)
{
for (i=1,min=999;i<=n;i++)
{
for (j=1;j <=n;j++)
{
if(cost[j] < min)
{
min = cost[j];
a=u=i;
b=v=j;
}
}
}
u=find(u);
v=find(v);
if(uni(u,v))
{
printf("%d arrestas (%d,%d) =%d\n",ne++,a,b,min);
mincost += min;
}
cost[a]=cost[a]=999;
}
printf("\n\tMinimo custo = %d\n",mincost);
getch();
}
int find(int i)
{
while(parent)
i=parent;
return i;
}
int uni(int i,int j)
{
if (i != j)
{
parent[j]=i;
return 1;
}
return 0;
}
Pergunta
Flavio Azevedo
Galera alguém poderia me ajudar a traduzir um código em c para Assembly MIPS? O código é implementação do Algoritmo de Kruskal. Segue o código.
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
int i,j,k,a,b,u,v,n,ne=1;
int min,mincost=0,cost[9][9],parent[9];
int find(int);
int uni(int,int);
int main ()
{
//clrscr();
printf("\nImplementação de kruskal");
printf("\nEntre com os vertices : ");
scanf("%d",&n);
printf("\ninsira a matriz de adjacência de custos : ");
for (i=1;i<=n;i++)
{
for (j=1;j<=n;j++)
{
scanf("%d",&cost[j]);
if(cost[j]==0)
cost[j]=999;
}
}
printf("As bordas de uma árvore de abrangência de custo mínimo são :");
while (ne < n)
{
for (i=1,min=999;i<=n;i++)
{
for (j=1;j <=n;j++)
{
if(cost[j] < min)
{
min = cost[j];
a=u=i;
b=v=j;
}
}
}
u=find(u);
v=find(v);
if(uni(u,v))
{
printf("%d arrestas (%d,%d) =%d\n",ne++,a,b,min);
mincost += min;
}
cost[a]=cost[a]=999;
}
printf("\n\tMinimo custo = %d\n",mincost);
getch();
}
int find(int i)
{
while(parent)
i=parent;
return i;
}
int uni(int i,int j)
{
if (i != j)
{
parent[j]=i;
return 1;
}
return 0;
}
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.