資料結構與演算法課程設計 Prim演算法

2022-08-11 06:09:11 字數 1793 閱讀 7717

題目:

某地區經過對城鎮交通狀況的調查,得到現有城鎮間快速道路的統計資料,並提出「暢通工程」的目標,

使整個地區任何兩個城鎮間都可以實現快速交通(但不一定有直接的快速道路相連,只要互相間接通過快

速路可達即可)。現得到城鎮道路統計表,表中列出了任意兩城鎮間修建快速路的費用,以及該道路是否已經修通的狀態。

現請你編寫程式,計算出全地區暢通需要的最低成本:

1 #include "

stdio.h"2

/*3某地區經過對城鎮交通狀況的調查,得到現有城鎮間快速道路的統計資料,並提出「暢通工程」的目標,

4使整個地區任何兩個城鎮間都可以實現快速交通(但不一定有直接的快速道路相連,只要互相間接通過快

5速路可達即可)。現得到城鎮道路統計表,表中列出了任意兩城鎮間修建快速路的費用,以及該道路是否已經修通的狀態。

6現請你編寫程式,計算出全地區暢通需要的最低成本:

7輸入格式:89

輸入的第一行給出村莊數目nn(1\le n \le 1001≤n≤100);隨後的n(n-1)/2n(n?1)/2行對應村莊間道路的成本及修建狀態:

10每行給出4個正整數,分別是兩個村莊的編號(從1編號到nn),此兩村莊間道路的成本,以及修建狀態 — 1表示已建,0表示未建。

11輸出格式:

1213

輸出全省暢通需要的最低成本。

14輸入樣例:

1516417

1 2 1 1

181 3 4 0

191 4 1 1

202 3 3 0

212 4 2 1

223 4 5 0

23輸出樣例:

2425326

*/27

#define max 101

28#define infinity 10000 //

表示極大值

29//

prim演算法從頂點入手

30struct

edgeclosedge[max];//

輔助陣列,記錄從u到v-u具有最小代價的邊

34void minspantree_prime(int g[max][max] ,int

n)3549}

50 printf("

實現全地區暢通需要的最低成本的道路有:\n");

51for(i=1;i)

52 60}

61for( j=1;j<=n;j++)

62

67 sum +=closedge[k].lowcost;

68 printf("

(%d,%d)

",closedge[k].adjvex,k);//

輸出最小邊

69 closedge[k].lowcost = -1;//

將頂點k加入集合u中

70for( j=1;j<=n;j++)

71 77}

7879

}80 printf("

\n最低成本為:%d

",sum);81}

8283

intmain()94}

95for( i=0;i)

9699 scanf("

%d",&n);

100 m = n*(n-1)/2

;101

for( i=0;i)

102113

minspantree_prime(g,n);

114return0;

115 }

資料結構與演算法課程設計 Prim演算法

題目 某地區經過對城鎮交通狀況的調查,得到現有城鎮間快速道路的統計資料,並提出 暢通工程 的目標,使整個地區任何兩個城鎮間都可以實現快速交通 但不一定有直接的快速道路相連,只要互相間接通過快 速路可達即可 現得到城鎮道路統計表,表中列出了任意兩城鎮間修建快速路的費用,以及該道路是否已經修通的狀態。現...

資料結構與演算法課程設計

題目 某地區經過對城鎮交通狀況的調查,得到現有城鎮間快速道路的統計資料,並提出 暢通工程 的目標,使整個地區任何兩個城鎮間都可以實現快速交通 但不一定有直接的快速道路相連,只要互相間接通過快 速路可達即可 現得到城鎮道路統計表,表中列出了任意兩城鎮間修建快速路的費用,以及該道路是否已經修通的狀態。現...

資料結構課程設計

資料結構課程設計 include define n 30 include include includeusing namespace std struct node typedef node phone,mingzi node hashnumble node hashname int hash1 ...