際際滷

際際滷Share a Scribd company logo
B2譟 襭蟲譟
5. 豕蟇磯Μ 谿剰鍵




     譟一 : 20113324 豕
     譟一 : 20083430 螳轟
         20093532 豕豌
         20113277 蟾煙
         20113272 蟾
螻殊殊
                                          譟一
  B2        譟一 : 豕         襭譟一 : 螳轟, 豕, 蟾                貊 : 豕豌, 蟾煙
螻殊蠍郁                                    5.31~6.7
                                 I. 螻 
郁規覈     豕蟇磯Μ 谿剰鍵



郁規覦郁化     企 螻襴讀 伎 豕蟇磯Μ襯 谿城.




                   http://internet512.chonbuk.ac.kr/datastructure/graph/graph2_5_16.htm
谿瑚襭      谿瑚 URL
                   http://forum.falinux.com/zbxe/?document_srl=535875


                                II. 螻 ろ
 豌讌                              2012 5 31 覈
る                           襦語  危伎 覓 覿


         螳  覿危螻, c襦 豕蟇磯Μ 谿城 蟆 蟲 蟆 , る朱Μ 襯 れ
  伎
         螳覃 覓語襯 企慨.




螻殊譴觜   企 襦碁ゼ 企 朱 碁讌 危危蠍郁 譬 企れ螻, 豌  襭螳 覿譟燕 
      螳 蟆 讌讌  覿覿 .


 讌                                 2012 6 5 


る       螳 譟一伎 蟆れ 譬 企 覦レ朱 襦碁ゼ 燕企螳讌 .


         襦企- 螻襴讀(Floyd-Warshall Algorithm)
         蠏碁 覈 螳 豕蟇磯Μ襯 蟲 螻襴讀企.  螳 危企 る  豌襴
         .  覦蟾レ 覦覲給語 蟇一 螳 願,  覯讌 覦覲給語 豢覦 ,  覯讌 覦覲給語
         谿 企.


         襴 豌企 襷れ 螳. A B襦 螳   蟆暑螳
  伎   螻,  B C襦 螳   蟆暑螳 り る 蟆郁記 A
          C襦 螳   蟆暑螳 り   . 襷 A C
         襦 '讌' 螳   蟆暑螳  譟伎 讌 螳  觜
          B襯 蟇一 C襦 螳 蟆覲企 襷 り . 蠏碁覃 襦
          螻襴讀 A C襦 螳 蟆 蠍壱螻 A B襯
         蟇一 C襦 螳 '豕蟇磯Μ' 襦 一危碁ゼ 蟆 .
 蠏碁  襦企 螻襴讀 企蓋る


 D                 1 螻 - 企 蟆暑 蟇一讌  
      A   B   C      朱 螳 螳 0 .
 -1
 A    0   4   11   A C襦 螳  11企朱 蟆螻 C B襦
 B    6   0    2   螳  覓危朱 蟆 譯朱.
 C    3       0

                   2 螻 - 蟆暑 襯 蟇一    (
                     3螳覦 覩襦 2螻螳 れ
                   襷讌襷 .)

 D                 For 覓語 覃伎  蟆 螳. A
      A   B   C
 -2                A襦 螳 覦覯 覓朱 0企 A B襦 螳
 A    0   4   7
                   覦覯 覲 螳讌 訖企. A C襦
 B    6   0   2
 C    3      0    螳   螳讌 覦覯 蠍磯 豌讌, A >C 
                   覦覯朱 螳 11企. 讌, A B襯 蟇一
                   C襦 螳 覦覯朱 螳 3 + 4 = 7企. 磯
                    殊  11 7襦 覦蠑朱.

                   For 覓語 覃伎 螻 蟆 螳. B A
                   襦 螳   螳讌 覦覯 蠍磯 豌讌, B >A

 D                  覦覯朱 螳 6企. 讌, B C襯 蟇一
      A   B   C    A襦 螳 覦覯朱 螳 2 + 3 = 5企. 磯
 -2
 A    0   4   7     殊  6 5襦 覦蠑朱. B B襦
 B    5   0   2    0企 B C襦 螳磯 2螳讌 覦覯 蟆
 C    3      0    讌襷 るジ 覦覯 6 + 11 = 17企 覩襦
                    蟆 豕願鍵 覦蠑語 .

                   C A襦 螳 覦覯 覲 螳讌 訖
 D                 企,  C B襦 螳  蟆 .
      A   B   C
 -2                C >A >B  覦覯 牛 3 + 4 = 7 螳
 A    0   4   7
                   襦 B   . 磯殊 殊  覓
 B    5   0   2
 C    3   7   0    襯 7襦 .C C襦 螳 覦覯
                   覓朱 0企.

 D
      A   B   C
 -2
 A    0   4   7    焔 企.
 B    5   0   2
 C    3   7   0
- 襦企- 螻襴讀(Floyd-Warshall Algorithm)
          豕蟇磯Μ 谿剰鍵 螻襴讀朱 襷れ伎 螻襴讀企.




          れ旧ろ碁殊 螻襴讀    るジ 覈 蟾讌 豕蟇磯Μ襯 蟲
       . 螳螳 覈  るジ 覈 蟾讌 豕 蟇磯Μ襯 蟲螻 る,
      れ旧ろ碁殊 螻襴讀 n覯 朱 詞  .



          襦企 螻襴讀 覲企 煙  .
      譯殊伎 蠏碁襯 蟲燕  伎 螳 E(i, j)   伎 蟇磯Μ襯 企 螳
      譴豺襯 覿.

      企 螳譴豺 C(i, j) 襦 . 襷 n 螳 朱 企伎 蠏碁襯 螻ろ
      覃, 蠏碁襯 企 n*n   adj_matrix[][]  蟇磯Μ襯 企 n*n  
      dist[][] 襯 蟲燕.



      鏤


      shortest_floyd(int adj_matrix[][]) {

           dist[SIZE][SIZE];



           dist[][] = adj_matrix[][] 襦 豐蠍壱

               for(k = 0; k < n; k++)

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

                           for(j = 0; j < n; j++)

                               dist[i][j] = Min(dist[i][j], dist[i][k] + dist[k][j]);

           return(dist);

      }




      襦企- 螻襴讀企朱 磯Μ螳 燕伎  襦語 

       螻襴讀 る  訖.
蟆郁骸

         #include <stdio.h>
         #include <stdlib.h>
         #define M 999999


         int **arr;
         int **arr2;
         int **arr3;
         int **path;
         int n=0;
         char alpha[20];


         int floyd()
         {
         int i,j,k;


         for(k=1;k<n;k++)
         {
         for(i=1;i<n;i++)
         {
         for(j=1;j<n;j++)
         {
豕譬襦蠏碁
         if(arr[i][k]+arr[k][j]<arr[i][j])
  
         {
         arr[i][j]=arr[i][k]+arr[k][j];
         path[i][j] = k;
         }
         }
         }
         }


         arr2=(int **)malloc(sizeof(int)*n);
         for(i=0;i<n;i++)
         arr2[i]=(int*)malloc(sizeof(int)*n);


         for(i=0;i<n;i++)
         {
         for(j=0;j<n;j++)
         arr2[i][j]=arr[i][j];
         }


         arr3=(int **)malloc(sizeof(int)*n);
         for(i=0;i<n;i++)
         arr3[i]=(int*)malloc(sizeof(int)*n);
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
arr3[i][j]=arr[i][j];
}
}


int print()
{
int i,j;


for(i=1;i<n;i++)
{
for(j=1;j<n;j++)
printf("%d ",arr[i][j]);
printf("n");
}
}


int scan()
{
FILE *fp = fopen("test.txt","rt");
char str[5],ch;
int c1,c2,weight,i,j;


fgets(str,sizeof(str),fp);


n = atoi(str)+1;


arr=(int **)malloc(sizeof(int)*n);
for(i=0;i<n;i++)
arr[i]=(int*)malloc(sizeof(int)*n);


path=(int **)malloc(sizeof(int)*n);
for(i=0;i<n;i++)
path[i]=(int*)malloc(sizeof(int)*n);


for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
path[i][j]=0;
}
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
if(i==j)
arr[i][j]=0;
else
arr[i][j]=M;
}
}



while(1)
{
ch = fgetc(fp);
c1 = alphacheck(ch);
ch = fgetc(fp);
c2 = alphacheck(ch);


if(fgets(str,sizeof(str),fp)!=NULL)
weight=atoi(str);
else
break
arr[c1][c2]=weight;
arr[c2][c1]=weight;
}


}


int alphacheck(char ch)
{
int cnt=0,i;


for(i=0;i<20;i++)
{
if(ch==alpha[i])
{
cnt = 1;
break
}
}


if(cnt==0)
{
for(i=0;i<20;i++)
{
if(alpha[i]==NULL)
{
alpha[i]=ch;
break
}
}
}
return i+1;
}


int pathsearch(int a,int b)
{
if(path[a][b])
return path[a][b];
else
return 0;
}


int shotestpath3()
{
int min=M,i,j,k,mins[3],cnt=0,i1,j1;
char shot[3][20];


for(k=0;k<3;k++)
{
min = M;


for(i=1;i<n;i++)
{
for(j=1;j<n;j++)
{
if(arr2[i][j]!=0)
{
if(arr2[i][j]<min)
{
min = arr2[i][j];
i1 = i;
j1 = j;
}
}
}
}


mins[k]= min;
arr2[i1][j1] = 0;
arr2[j1][i1] = 0;
}


for(k=0;k<3;k++)
{
printf("%d - Weight : %d , ShortestPath : ",k+1,mins[k]);
for(i=1;i<n;i++)
{
for(j=1;j<n;j++)
{
if(mins[k]==arr[i][j])
{
arr[i][j]=0;
arr[j][i]=0;
cnt = 0;
printf("%c->",alpha[i-1]);


min = pathsearch(i,j);
while(min!=0)
{
shot[k][cnt] = alpha[min-1];
min = pathsearch(i,min);
cnt++;
}
i=n;
break
}
}
}


for(i=cnt-1;i>=0;i--)
printf("%c->",shot[k][i]);
printf("%cn",alpha[j-1]);


}
}


int shotestpath()
{
int i,j,k,min,sum=0,i1;


for(k=0;k<3;k++)
{
min = M;
for(i=1;i<n;i++)
{
sum = 0;
for(j=1;j<n;j++)
sum += arr3[i][j];
if(min>sum && sum!=0)
{
min = sum;
i1 = i;
}
}


for(i=0;i<n;i++)
arr3[i1][i] = 0;


printf("%d - Weight : %d , ShotestPath : %cn",k+1,min,alpha[i1-1]);
}
}


/*
4
AB 2
AC 6
AD 7
BD 5
CD 3
BC 4
*/



int main(void)
{


scan();


floyd();


//shotestpath();


shotestpath3();


return 0;
}
襦企- 螻襴讀企朱 蟆 螳覲企 蟒 企れ 危
螻殊襯 襷豺覃伎    る 襾轟  矩. 讌襷  螻襴讀 磯Μ螳
        願屋伎  襦語  螻襴讀企朱  麹
           譬. 蠏碁Μ螻 磯Μ譟 螳 蟆曙一 豢 蟆郁骸襯 企至 觸
           伎 讌 麹 螻覩殊 襷 . path  蠍語企ゼ
           觜蟲 螳 讌ъ 3螳襯 觸殊, 覈 碁襯  讌 螳
            讌ъ 豕蟇磯Μ襯 谿場殊. 磯Μ譟一 2螳 蟆曙磯ゼ 覈
           襷れ企螻 豌 覯讌 覦覯朱 煙貅磯.

More Related Content

What's hot (11)

2012 Dm A0 06 Pdf
2012 Dm A0 06 Pdf2012 Dm A0 06 Pdf
2012 Dm A0 06 Pdf
kd19h
2012 Ds A1 05
2012 Ds A1 052012 Ds A1 05
2012 Ds A1 05
seonhyung
伎一 Project6
伎一 Project6伎一 Project6
伎一 Project6
KoChungWook
Data Structure - 1st Study
Data Structure - 1st StudyData Structure - 1st Study
Data Structure - 1st Study
Chris Ohk
襭蟲譟05
襭蟲譟05襭蟲譟05
襭蟲譟05
herojoon1378
Ch05
Ch05Ch05
Ch05
Hankyo
String Searching Algorithms
String Searching AlgorithmsString Searching Algorithms
String Searching Algorithms
skku_npc
2012 Dm A0 04 Pdf
2012 Dm A0 04 Pdf2012 Dm A0 04 Pdf
2012 Dm A0 04 Pdf
kd19h
伎一 Project5
伎一 Project5伎一 Project5
伎一 Project5
KoChungWook
2012 Dm C2 04
2012 Dm C2 042012 Dm C2 04
2012 Dm C2 04
seonhyung
2012 Dm A0 06 Pdf
2012 Dm A0 06 Pdf2012 Dm A0 06 Pdf
2012 Dm A0 06 Pdf
kd19h
2012 Ds A1 05
2012 Ds A1 052012 Ds A1 05
2012 Ds A1 05
seonhyung
伎一 Project6
伎一 Project6伎一 Project6
伎一 Project6
KoChungWook
Data Structure - 1st Study
Data Structure - 1st StudyData Structure - 1st Study
Data Structure - 1st Study
Chris Ohk
Ch05
Ch05Ch05
Ch05
Hankyo
String Searching Algorithms
String Searching AlgorithmsString Searching Algorithms
String Searching Algorithms
skku_npc
2012 Dm A0 04 Pdf
2012 Dm A0 04 Pdf2012 Dm A0 04 Pdf
2012 Dm A0 04 Pdf
kd19h
伎一 Project5
伎一 Project5伎一 Project5
伎一 Project5
KoChungWook
2012 Dm C2 04
2012 Dm C2 042012 Dm C2 04
2012 Dm C2 04
seonhyung

Viewers also liked (17)

Teamrio+siga+virtual+2016+septiembreTeamrio+siga+virtual+2016+septiembre
Teamrio+siga+virtual+2016+septiembre
Centro de Capacitaci坦n y Desarrollo Global
Siga+patrimonioSiga+patrimonio
Siga+patrimonio
Centro de Capacitaci坦n y Desarrollo Global
2012 Dm C3 03
2012 Dm C3 032012 Dm C3 03
2012 Dm C3 03
chl132435
Media Lounge
Media LoungeMedia Lounge
Media Lounge
medialounge
2012 Dm C3 06
2012 Dm C3 062012 Dm C3 06
2012 Dm C3 06
chl132435
Curso+virtual+modernizacion+del+estadoCurso+virtual+modernizacion+del+estado
Curso+virtual+modernizacion+del+estado
Centro de Capacitaci坦n y Desarrollo Global
Taller+seaceTaller+seace
Taller+seace
Centro de Capacitaci坦n y Desarrollo Global
Medialounge
MedialoungeMedialounge
Medialounge
medialounge
Secretarias y-asistentesSecretarias y-asistentes
Secretarias y-asistentes
Centro de Capacitaci坦n y Desarrollo Global
Temario curso virtual_siaf_v7_2016Temario curso virtual_siaf_v7_2016
Temario curso virtual_siaf_v7_2016
Centro de Capacitaci坦n y Desarrollo Global
Ley+de+contratacionesLey+de+contrataciones
Ley+de+contrataciones
Centro de Capacitaci坦n y Desarrollo Global
Secretarias y-asistentesSecretarias y-asistentes
Secretarias y-asistentes
Centro de Capacitaci坦n y Desarrollo Global
Siga+patrimonio 28-29-30-01Siga+patrimonio 28-29-30-01
Siga+patrimonio 28-29-30-01
Centro de Capacitaci坦n y Desarrollo Global
Diploma+siaf,+siga l+y+siga pDiploma+siaf,+siga l+y+siga p
Diploma+siaf,+siga l+y+siga p
Centro de Capacitaci坦n y Desarrollo Global
2012 Ds B2 02
2012 Ds B2 022012 Ds B2 02
2012 Ds B2 02
chl132435
2012 Ds D0 01
2012 Ds D0 012012 Ds D0 01
2012 Ds D0 01
chl132435
ELABORACIN DE ESTADOS FINANCIEROS ELABORACIN DE ESTADOS FINANCIEROS
ELABORACIN DE ESTADOS FINANCIEROS
Centro de Capacitaci坦n y Desarrollo Global
Teamrio+siga+virtual+2016+septiembreTeamrio+siga+virtual+2016+septiembre
Teamrio+siga+virtual+2016+septiembre
Centro de Capacitaci坦n y Desarrollo Global
2012 Dm C3 03
2012 Dm C3 032012 Dm C3 03
2012 Dm C3 03
chl132435
2012 Dm C3 06
2012 Dm C3 062012 Dm C3 06
2012 Dm C3 06
chl132435
Curso+virtual+modernizacion+del+estadoCurso+virtual+modernizacion+del+estado
Curso+virtual+modernizacion+del+estado
Centro de Capacitaci坦n y Desarrollo Global
Temario curso virtual_siaf_v7_2016Temario curso virtual_siaf_v7_2016
Temario curso virtual_siaf_v7_2016
Centro de Capacitaci坦n y Desarrollo Global
Siga+patrimonio 28-29-30-01Siga+patrimonio 28-29-30-01
Siga+patrimonio 28-29-30-01
Centro de Capacitaci坦n y Desarrollo Global
Diploma+siaf,+siga l+y+siga pDiploma+siaf,+siga l+y+siga p
Diploma+siaf,+siga l+y+siga p
Centro de Capacitaci坦n y Desarrollo Global
2012 Ds B2 02
2012 Ds B2 022012 Ds B2 02
2012 Ds B2 02
chl132435
2012 Ds D0 01
2012 Ds D0 012012 Ds D0 01
2012 Ds D0 01
chl132435
ELABORACIN DE ESTADOS FINANCIEROS ELABORACIN DE ESTADOS FINANCIEROS
ELABORACIN DE ESTADOS FINANCIEROS
Centro de Capacitaci坦n y Desarrollo Global

Similar to 2012 Ds B2 05 (20)

Project#5 豕蟇磯Μ 谿剰鍵 D0 Hwp
Project#5 豕蟇磯Μ 谿剰鍵 D0 HwpProject#5 豕蟇磯Μ 谿剰鍵 D0 Hwp
Project#5 豕蟇磯Μ 谿剰鍵 D0 Hwp
Kimjeongmoo
襭蟲譟5覲願
襭蟲譟5覲願襭蟲譟5覲願
襭蟲譟5覲願
KimChangHoen
2012 Ds B1 01
2012 Ds B1 012012 Ds B1 01
2012 Ds B1 01
seonhyung
2012 Ds B2 02 Pdf
2012 Ds B2 02 Pdf2012 Ds B2 02 Pdf
2012 Ds B2 02 Pdf
kd19h
3貊るれ伎
3貊るれ伎3貊るれ伎
3貊るれ伎
herojoon1378
Project#3 How Fast Can We Sort Hwp
Project#3 How Fast Can We Sort HwpProject#3 How Fast Can We Sort Hwp
Project#3 How Fast Can We Sort Hwp
Kimjeongmoo
2012 Dm C2 03
2012 Dm C2 032012 Dm C2 03
2012 Dm C2 03
seonhyung
伎一 Project4
伎一 Project4伎一 Project4
伎一 Project4
KoChungWook
[Swift] Data Structure - Graph(BFS)
[Swift] Data Structure - Graph(BFS)[Swift] Data Structure - Graph(BFS)
[Swift] Data Structure - Graph(BFS)
Bill Kim
伎一 C1 襦 7
伎一 C1 襦 7伎一 C1 襦 7
伎一 C1 襦 7
pkok15
伎一 C1 襦 3
伎一 C1 襦 3伎一 C1 襦 3
伎一 C1 襦 3
pkok15
[蟆暑蠍一] 蠏覿
[蟆暑蠍一] 蠏覿[蟆暑蠍一] 蠏覿
[蟆暑蠍一] 蠏覿
jaypi Ko
襭蟲譟02
襭蟲譟02襭蟲譟02
襭蟲譟02
herojoon1378
2012 Dm 07
2012 Dm 072012 Dm 07
2012 Dm 07
Jungyerin
2012 Dm A0 06 Pdf
2012 Dm A0 06 Pdf2012 Dm A0 06 Pdf
2012 Dm A0 06 Pdf
jinwookhong
[D2 CAMPUS] 覿磯 Alcall 襦蠏碁覦 蟆曙 覓語
[D2 CAMPUS] 覿磯 Alcall 襦蠏碁覦 蟆曙 覓語 [D2 CAMPUS] 覿磯 Alcall 襦蠏碁覦 蟆曙 覓語
[D2 CAMPUS] 覿磯 Alcall 襦蠏碁覦 蟆曙 覓語
NAVER D2
Project#5 豕蟇磯Μ 谿剰鍵 D0 Hwp
Project#5 豕蟇磯Μ 谿剰鍵 D0 HwpProject#5 豕蟇磯Μ 谿剰鍵 D0 Hwp
Project#5 豕蟇磯Μ 谿剰鍵 D0 Hwp
Kimjeongmoo
襭蟲譟5覲願
襭蟲譟5覲願襭蟲譟5覲願
襭蟲譟5覲願
KimChangHoen
2012 Ds B1 01
2012 Ds B1 012012 Ds B1 01
2012 Ds B1 01
seonhyung
2012 Ds B2 02 Pdf
2012 Ds B2 02 Pdf2012 Ds B2 02 Pdf
2012 Ds B2 02 Pdf
kd19h
Project#3 How Fast Can We Sort Hwp
Project#3 How Fast Can We Sort HwpProject#3 How Fast Can We Sort Hwp
Project#3 How Fast Can We Sort Hwp
Kimjeongmoo
2012 Dm C2 03
2012 Dm C2 032012 Dm C2 03
2012 Dm C2 03
seonhyung
伎一 Project4
伎一 Project4伎一 Project4
伎一 Project4
KoChungWook
[Swift] Data Structure - Graph(BFS)
[Swift] Data Structure - Graph(BFS)[Swift] Data Structure - Graph(BFS)
[Swift] Data Structure - Graph(BFS)
Bill Kim
伎一 C1 襦 7
伎一 C1 襦 7伎一 C1 襦 7
伎一 C1 襦 7
pkok15
伎一 C1 襦 3
伎一 C1 襦 3伎一 C1 襦 3
伎一 C1 襦 3
pkok15
[蟆暑蠍一] 蠏覿
[蟆暑蠍一] 蠏覿[蟆暑蠍一] 蠏覿
[蟆暑蠍一] 蠏覿
jaypi Ko
2012 Dm 07
2012 Dm 072012 Dm 07
2012 Dm 07
Jungyerin
2012 Dm A0 06 Pdf
2012 Dm A0 06 Pdf2012 Dm A0 06 Pdf
2012 Dm A0 06 Pdf
jinwookhong
[D2 CAMPUS] 覿磯 Alcall 襦蠏碁覦 蟆曙 覓語
[D2 CAMPUS] 覿磯 Alcall 襦蠏碁覦 蟆曙 覓語 [D2 CAMPUS] 覿磯 Alcall 襦蠏碁覦 蟆曙 覓語
[D2 CAMPUS] 覿磯 Alcall 襦蠏碁覦 蟆曙 覓語
NAVER D2

2012 Ds B2 05

  • 1. B2譟 襭蟲譟 5. 豕蟇磯Μ 谿剰鍵 譟一 : 20113324 豕 譟一 : 20083430 螳轟 20093532 豕豌 20113277 蟾煙 20113272 蟾
  • 2. 螻殊殊 譟一 B2 譟一 : 豕 襭譟一 : 螳轟, 豕, 蟾 貊 : 豕豌, 蟾煙 螻殊蠍郁 5.31~6.7 I. 螻 郁規覈 豕蟇磯Μ 谿剰鍵 郁規覦郁化 企 螻襴讀 伎 豕蟇磯Μ襯 谿城. http://internet512.chonbuk.ac.kr/datastructure/graph/graph2_5_16.htm 谿瑚襭 谿瑚 URL http://forum.falinux.com/zbxe/?document_srl=535875 II. 螻 ろ 豌讌 2012 5 31 覈 る 襦語 危伎 覓 覿 螳 覿危螻, c襦 豕蟇磯Μ 谿城 蟆 蟲 蟆 , る朱Μ 襯 れ 伎 螳覃 覓語襯 企慨. 螻殊譴觜 企 襦碁ゼ 企 朱 碁讌 危危蠍郁 譬 企れ螻, 豌 襭螳 覿譟燕 螳 蟆 讌讌 覿覿 . 讌 2012 6 5 る 螳 譟一伎 蟆れ 譬 企 覦レ朱 襦碁ゼ 燕企螳讌 . 襦企- 螻襴讀(Floyd-Warshall Algorithm) 蠏碁 覈 螳 豕蟇磯Μ襯 蟲 螻襴讀企. 螳 危企 る 豌襴 . 覦蟾レ 覦覲給語 蟇一 螳 願, 覯讌 覦覲給語 豢覦 , 覯讌 覦覲給語 谿 企. 襴 豌企 襷れ 螳. A B襦 螳 蟆暑螳 伎 螻, B C襦 螳 蟆暑螳 り る 蟆郁記 A C襦 螳 蟆暑螳 り . 襷 A C 襦 '讌' 螳 蟆暑螳 譟伎 讌 螳 觜 B襯 蟇一 C襦 螳 蟆覲企 襷 り . 蠏碁覃 襦 螻襴讀 A C襦 螳 蟆 蠍壱螻 A B襯 蟇一 C襦 螳 '豕蟇磯Μ' 襦 一危碁ゼ 蟆 .
  • 3. 蠏碁 襦企 螻襴讀 企蓋る D 1 螻 - 企 蟆暑 蟇一讌 A B C 朱 螳 螳 0 . -1 A 0 4 11 A C襦 螳 11企朱 蟆螻 C B襦 B 6 0 2 螳 覓危朱 蟆 譯朱. C 3 0 2 螻 - 蟆暑 襯 蟇一 ( 3螳覦 覩襦 2螻螳 れ 襷讌襷 .) D For 覓語 覃伎 蟆 螳. A A B C -2 A襦 螳 覦覯 覓朱 0企 A B襦 螳 A 0 4 7 覦覯 覲 螳讌 訖企. A C襦 B 6 0 2 C 3 0 螳 螳讌 覦覯 蠍磯 豌讌, A >C 覦覯朱 螳 11企. 讌, A B襯 蟇一 C襦 螳 覦覯朱 螳 3 + 4 = 7企. 磯 殊 11 7襦 覦蠑朱. For 覓語 覃伎 螻 蟆 螳. B A 襦 螳 螳讌 覦覯 蠍磯 豌讌, B >A D 覦覯朱 螳 6企. 讌, B C襯 蟇一 A B C A襦 螳 覦覯朱 螳 2 + 3 = 5企. 磯 -2 A 0 4 7 殊 6 5襦 覦蠑朱. B B襦 B 5 0 2 0企 B C襦 螳磯 2螳讌 覦覯 蟆 C 3 0 讌襷 るジ 覦覯 6 + 11 = 17企 覩襦 蟆 豕願鍵 覦蠑語 . C A襦 螳 覦覯 覲 螳讌 訖 D 企, C B襦 螳 蟆 . A B C -2 C >A >B 覦覯 牛 3 + 4 = 7 螳 A 0 4 7 襦 B . 磯殊 殊 覓 B 5 0 2 C 3 7 0 襯 7襦 .C C襦 螳 覦覯 覓朱 0企. D A B C -2 A 0 4 7 焔 企. B 5 0 2 C 3 7 0
  • 4. - 襦企- 螻襴讀(Floyd-Warshall Algorithm) 豕蟇磯Μ 谿剰鍵 螻襴讀朱 襷れ伎 螻襴讀企. れ旧ろ碁殊 螻襴讀 るジ 覈 蟾讌 豕蟇磯Μ襯 蟲 . 螳螳 覈 るジ 覈 蟾讌 豕 蟇磯Μ襯 蟲螻 る, れ旧ろ碁殊 螻襴讀 n覯 朱 詞 . 襦企 螻襴讀 覲企 煙 . 譯殊伎 蠏碁襯 蟲燕 伎 螳 E(i, j) 伎 蟇磯Μ襯 企 螳 譴豺襯 覿. 企 螳譴豺 C(i, j) 襦 . 襷 n 螳 朱 企伎 蠏碁襯 螻ろ 覃, 蠏碁襯 企 n*n adj_matrix[][] 蟇磯Μ襯 企 n*n dist[][] 襯 蟲燕. 鏤 shortest_floyd(int adj_matrix[][]) { dist[SIZE][SIZE]; dist[][] = adj_matrix[][] 襦 豐蠍壱 for(k = 0; k < n; k++) for(i = 0; i < n; i++) for(j = 0; j < n; j++) dist[i][j] = Min(dist[i][j], dist[i][k] + dist[k][j]); return(dist); } 襦企- 螻襴讀企朱 磯Μ螳 燕伎 襦語 螻襴讀 る 訖.
  • 5. 蟆郁骸 #include <stdio.h> #include <stdlib.h> #define M 999999 int **arr; int **arr2; int **arr3; int **path; int n=0; char alpha[20]; int floyd() { int i,j,k; for(k=1;k<n;k++) { for(i=1;i<n;i++) { for(j=1;j<n;j++) { 豕譬襦蠏碁 if(arr[i][k]+arr[k][j]<arr[i][j]) { arr[i][j]=arr[i][k]+arr[k][j]; path[i][j] = k; } } } } arr2=(int **)malloc(sizeof(int)*n); for(i=0;i<n;i++) arr2[i]=(int*)malloc(sizeof(int)*n); for(i=0;i<n;i++) { for(j=0;j<n;j++) arr2[i][j]=arr[i][j]; } arr3=(int **)malloc(sizeof(int)*n); for(i=0;i<n;i++) arr3[i]=(int*)malloc(sizeof(int)*n);
  • 6. for(i=0;i<n;i++) { for(j=0;j<n;j++) arr3[i][j]=arr[i][j]; } } int print() { int i,j; for(i=1;i<n;i++) { for(j=1;j<n;j++) printf("%d ",arr[i][j]); printf("n"); } } int scan() { FILE *fp = fopen("test.txt","rt"); char str[5],ch; int c1,c2,weight,i,j; fgets(str,sizeof(str),fp); n = atoi(str)+1; arr=(int **)malloc(sizeof(int)*n); for(i=0;i<n;i++) arr[i]=(int*)malloc(sizeof(int)*n); path=(int **)malloc(sizeof(int)*n); for(i=0;i<n;i++) path[i]=(int*)malloc(sizeof(int)*n); for(i=0;i<n;i++) { for(j=0;j<n;j++) path[i][j]=0; }
  • 7. for(i=0;i<n;i++) { for(j=0;j<n;j++) { if(i==j) arr[i][j]=0; else arr[i][j]=M; } } while(1) { ch = fgetc(fp); c1 = alphacheck(ch); ch = fgetc(fp); c2 = alphacheck(ch); if(fgets(str,sizeof(str),fp)!=NULL) weight=atoi(str); else break arr[c1][c2]=weight; arr[c2][c1]=weight; } } int alphacheck(char ch) { int cnt=0,i; for(i=0;i<20;i++) { if(ch==alpha[i]) { cnt = 1; break } } if(cnt==0) { for(i=0;i<20;i++)
  • 8. { if(alpha[i]==NULL) { alpha[i]=ch; break } } } return i+1; } int pathsearch(int a,int b) { if(path[a][b]) return path[a][b]; else return 0; } int shotestpath3() { int min=M,i,j,k,mins[3],cnt=0,i1,j1; char shot[3][20]; for(k=0;k<3;k++) { min = M; for(i=1;i<n;i++) { for(j=1;j<n;j++) { if(arr2[i][j]!=0) { if(arr2[i][j]<min) { min = arr2[i][j]; i1 = i; j1 = j; } } } } mins[k]= min;
  • 9. arr2[i1][j1] = 0; arr2[j1][i1] = 0; } for(k=0;k<3;k++) { printf("%d - Weight : %d , ShortestPath : ",k+1,mins[k]); for(i=1;i<n;i++) { for(j=1;j<n;j++) { if(mins[k]==arr[i][j]) { arr[i][j]=0; arr[j][i]=0; cnt = 0; printf("%c->",alpha[i-1]); min = pathsearch(i,j); while(min!=0) { shot[k][cnt] = alpha[min-1]; min = pathsearch(i,min); cnt++; } i=n; break } } } for(i=cnt-1;i>=0;i--) printf("%c->",shot[k][i]); printf("%cn",alpha[j-1]); } } int shotestpath() { int i,j,k,min,sum=0,i1; for(k=0;k<3;k++) { min = M;
  • 10. for(i=1;i<n;i++) { sum = 0; for(j=1;j<n;j++) sum += arr3[i][j]; if(min>sum && sum!=0) { min = sum; i1 = i; } } for(i=0;i<n;i++) arr3[i1][i] = 0; printf("%d - Weight : %d , ShotestPath : %cn",k+1,min,alpha[i1-1]); } } /* 4 AB 2 AC 6 AD 7 BD 5 CD 3 BC 4 */ int main(void) { scan(); floyd(); //shotestpath(); shotestpath3(); return 0; }
  • 11. 襦企- 螻襴讀企朱 蟆 螳覲企 蟒 企れ 危 螻殊襯 襷豺覃伎 る 襾轟 矩. 讌襷 螻襴讀 磯Μ螳 願屋伎 襦語 螻襴讀企朱 麹 譬. 蠏碁Μ螻 磯Μ譟 螳 蟆曙一 豢 蟆郁骸襯 企至 觸 伎 讌 麹 螻覩殊 襷 . path 蠍語企ゼ 觜蟲 螳 讌ъ 3螳襯 觸殊, 覈 碁襯 讌 螳 讌ъ 豕蟇磯Μ襯 谿場殊. 磯Μ譟一 2螳 蟆曙磯ゼ 覈 襷れ企螻 豌 覯讌 覦覯朱 煙貅磯.