Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Flavio Azevedo

Assembly MIPS.

Recommended Posts

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;
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.