본문 바로가기

IT

일단 저장

#include<stdio.h>

#include<stdlib.h>

#define MAX_SIZE 7

#define infinite 1000

#define FALSE 0

#define TRUE 1


int cost[7][7]={

0 , 28 , infinite, infinite , infinite, 10, infinite,

28, 0 , 16 ,infinite, infinite, infinite , 14,

infinite, 16 , 0 , 12 , infinite , infinite ,infinite,

infinite, infinite, 12 , 0 , 22 , infinite , 18 , 

infinite, infinite, infinite ,22 , 0 , 25 , 24,

10 , infinite,infinite,infinite,25, 0 ,infinite,

infinite , 14 , infinite , 18 , 24 , infinite , 0

};

int found[MAX_SIZE]={0};

int distance[MAX_SIZE];

int num[MAX_SIZE];

int count =0;


void prim(int n);


int main(void)

{

int i;


for(i=0;i<MAX_SIZE;i++)

distance[i]=infinite;



prim(0);

return 0;

}


void prim(int n)

{

int i,min=9999,memo,current;


printf("%d ",n);

found[n] = TRUE;

for(i=0;i<7;i++)

{

if(distance[i] > cost[n][i])

{

distance[i] = cost[n][i];

}

}

for(i=0;i<7;i++)

{

if(distance[i] > 0 && distance[i] < min)

{

min = distance[i];

memo = i;

}

}

count++;

if(count<7)

{

prim(memo);

}

}

'IT' 카테고리의 다른 글

그래프 관련인듯  (0) 2014.05.14
제목은 나중에 붙이는 걸로  (0) 2014.05.14
몰라  (0) 2014.05.14
이건 뭘까  (0) 2014.05.14
이게 뭐지  (0) 2014.05.14