You are on page 1of 5

NAME:DISHANT H SHAH ROLL:16 CLASS:SE-B/COMPS

EXPERIMENT:5 SUBJECT:AOA

CODE:
#include<conio.h>
#include<stdio.h>
#include<time.h>
#define infinty 999
#define NIL -1

int visited[10][10] = {0};


time_t start,end;
int parent[10][10];
//int parent[10][10]  = {0};

void warshall(int weight[10][10],int n)


{
    start = clock();    
    int i,j,k;
    int v_index = 0;

    printf("D[0]:");
        for(i=0;i<n;i++)
        {
            printf("\n");
            for(j=0;j<n;j++)
            {
                printf("%d\t",weight[i][j]);
            }
        }
       
        printf("\n");
        printf("Parent[0]:");
        for(i=0;i<n;i++)
        {
            printf("\n");
            for(j=0;j<n;j++)
            {
                printf("%d\t",parent[i][j]);
            }
        }
   
    printf("\n\n FLOYD-WARSHALL ALGORITHM:\n");
    for(k=0;k<n;k++)
NAME:DISHANT H SHAH ROLL:16 CLASS:SE-B/COMPS
EXPERIMENT:5 SUBJECT:AOA

    {
        for(i=0;i<n;i++)
        {
            for(j=0;j<n;j++)
            {
                visited[i][j] = 0;
            }
        }
       
        for(i=0;i<n;i++)
        {
            visited[v_index][i] = 1;
            if(visited[v_index][i] == NIL)
            for(j=0;j<n;j++)
            visited[j][i] = 1;
            visited[i][v_index] = 1;
            if(visited[i][v_index] == NIL)
            for(j=0;j<n;j++)
            visited[i][j] = 1;
        }
       
        for(i=0;i<n;i++)
        {
            for(j=0;j<n;j++)
            {
                if(!visited[i][j])
                {
                    if(weight[v_index][j] + weight[i][v_index] <
weight[i][j])
                    {
                      weight[i][j] = weight[v_index][j] + weight[i]
[v_index];
                      parent[i][j] = k+1;
                    }
                }
            }
        }
       
        printf("\n\n");
        printf("D[%d]:",k+1);
        for(i=0;i<n;i++)
        {
NAME:DISHANT H SHAH ROLL:16 CLASS:SE-B/COMPS
EXPERIMENT:5 SUBJECT:AOA

            printf("\n");
            for(j=0;j<n;j++)
            {
                printf("%d\t",weight[i][j]);
            }
        }
       
        printf("\n");
        printf("Parent[%d]:",k+1);
        for(i=0;i<n;i++)
        {
            printf("\n");
            for(j=0;j<n;j++)
            {
                printf("%d\t",parent[i][j]);
            }
        }
        v_index++;
       
    }
   end = clock();
}

void main()
{                      
    /*int weight[10][10] = {{0,3,8,0,-4},
                         {0,0,0,1,7},
                         {0,4,0,0,0},
                         {2,0,-5,0,0},
                         {0,0,0,6,0}};*/
                       
    int weight[10][10] = {{0,2,0,0,0},
                         {0,0,6,0,0},
                         {0,7,0,0,0},
                         {0,0,1,0,3},
                         {1,4,0,0,0}};
    int n = 5,i,j,k;
    for(i=0;i<n;i++)
    {
        for(j = 0;j<n;j++)
        parent[i][j] = -1;
    }
NAME:DISHANT H SHAH ROLL:16 CLASS:SE-B/COMPS
EXPERIMENT:5 SUBJECT:AOA

    /*printf("\nEnter Number of Vertices :");


    scanf("%d",&n);*/

    //printf("\nEnter the Elements :\n");


    for(i=0;i<n;i++)
    {
        printf("\n");
        for(j=0;j<n;j++)
        {
            /*printf("a[%d][%d] =",i+1,j+1);  
            scanf("%d",&weight[i][j]);
            printf(" ");*/
            if(i != j && weight[i][j] != 0)
            parent[i][j] = i+1;
            if(weight[i][j] == 0)
            {
                if(i !=j)
                weight[i][j] = infinty;
            }
        }
    }  

    warshall(weight,n);

    printf("\nThe time of execution is :%f",(double)(end-


start)/CLOCKS_PER_SEC);
}

OUTPUT is being shown for the following Graph:


NAME:DISHANT H SHAH ROLL:16 CLASS:SE-B/COMPS
EXPERIMENT:5 SUBJECT:AOA

OUTPUT:

You might also like