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

2021-10-10 02:32:04 字數 1840 閱讀 3634

題目:

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

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

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

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

1 #include "stdio.h"

2 /*

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

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

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

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

7 輸入格式:

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

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

11 輸出格式:

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

14 輸入樣例:

15 16 4

17 1 2 1 1

18 1 3 4 0

19 1 4 1 1

20 2 3 3 0

21 2 4 2 1

22 3 4 5 0

23 輸出樣例:

24 25 3

26 */

27 #define max 101

28 #define infinity 10000 //表示極大值

29 //prim演算法從頂點入手

30 struct edgeclosedge[max];//輔助陣列,記錄從u到v-u具有最小代價的邊

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

35 49 }

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

51 for(i=1;i52

60 }

61 for( 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中

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

71

77 }

78

79 }

80 printf("\n最低成本為:%d",sum);

81 }

82 83 int main()

94 }

95 for( i=0;i96

99 scanf("%d",&n);

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

101 for( i=0;i102

113 minspantree_prime(g,n);

114 return 0;

115 }

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

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

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

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

資料結構課程設計

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