亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C++ > 正文

使用C語言實現(xiàn)最小生成樹求解的簡單方法

2020-05-23 14:15:59
字體:
供稿:網(wǎng)友

這篇文章主要介紹了使用C語言實現(xiàn)最小生成樹求解的簡單方法,包括Prim算法和Kruskal算法的兩種求解方式,需要的朋友可以參考下

最小生成樹Prim算法樸素版

有幾點需要說明一下。

1、2個for循環(huán)都是從2開始的,因為一般我們默認(rèn)開始就把第一個節(jié)點加入生成樹,因此之后不需要再次尋找它。

2、lowcost[i]記錄的是以節(jié)點i為終點的最小邊權(quán)值。初始化時因為默認(rèn)把第一個節(jié)點加入生成樹,因此lowcost[i] = graph[1][i],即最小邊權(quán)值就是各節(jié)點到1號節(jié)點的邊權(quán)值。

3、mst[i]記錄的是lowcost[i]對應(yīng)的起點,這樣有起點,有終點,即可唯一確定一條邊了。初始化時mst[i] = 1,即每條邊都是從1號節(jié)點出發(fā)。

編寫程序:對于如下一個帶權(quán)無向圖,給出節(jié)點個數(shù)以及所有邊權(quán)值,用Prim算法求最小生成樹。

使用C語言實現(xiàn)最小生成樹求解的簡單方法

輸入數(shù)據(jù):

7 11

A B 7

A D 5

B C 8

B D 9

B E 7

C E 5

D E 15

D F 6

E F 8

E G 9

F G 11

輸出:

A - D : 5

D - F : 6

A - B : 7

B - E : 7

E - C : 5

E - G : 9

Total:39

最小生成樹Prim算法樸素版 C語言實現(xiàn) 代碼如下

 

 
  1. #include <stdio.h> 
  2. #include <stdlib.h> 
  3.  
  4. #define MAX 100 
  5. #define MAXCOST 0x7fffffff 
  6.  
  7. int graph[MAX][MAX]; 
  8.  
  9. int Prim(int graph[][MAX], int n) 
  10. /* lowcost[i]記錄以i為終點的邊的最小權(quán)值,當(dāng)lowcost[i]=0時表示終點i加入生成樹 */ 
  11. int lowcost[MAX]; 
  12.  
  13. /* mst[i]記錄對應(yīng)lowcost[i]的起點,當(dāng)mst[i]=0時表示起點i加入生成樹 */ 
  14. int mst[MAX]; 
  15.  
  16. int i, j, min, minid, sum = 0; 
  17.  
  18. /* 默認(rèn)選擇1號節(jié)點加入生成樹,從2號節(jié)點開始初始化 */ 
  19. for (i = 2; i <= n; i++) 
  20. /* 最短距離初始化為其他節(jié)點到1號節(jié)點的距離 */ 
  21. lowcost[i] = graph[1][i]; 
  22.  
  23. /* 標(biāo)記所有節(jié)點的起點皆為默認(rèn)的1號節(jié)點 */ 
  24. mst[i] = 1; 
  25.  
  26. /* 標(biāo)記1號節(jié)點加入生成樹 */ 
  27. mst[1] = 0; 
  28.  
  29. /* n個節(jié)點至少需要n-1條邊構(gòu)成最小生成樹 */ 
  30. for (i = 2; i <= n; i++) 
  31. min = MAXCOST; 
  32. minid = 0; 
  33.  
  34. /* 找滿足條件的最小權(quán)值邊的節(jié)點minid */ 
  35. for (j = 2; j <= n; j++) 
  36. /* 邊權(quán)值較小且不在生成樹中 */ 
  37. if (lowcost[j] < min && lowcost[j] != 0) 
  38. min = lowcost[j]; 
  39. minid = j; 
  40. /* 輸出生成樹邊的信息:起點,終點,權(quán)值 */ 
  41. printf("%c - %c : %d/n", mst[minid] + 'A' - 1, minid + 'A' - 1, min); 
  42.  
  43. /* 累加權(quán)值 */ 
  44. sum += min; 
  45.  
  46. /* 標(biāo)記節(jié)點minid加入生成樹 */ 
  47. lowcost[minid] = 0; 
  48.  
  49. /* 更新當(dāng)前節(jié)點minid到其他節(jié)點的權(quán)值 */ 
  50. for (j = 2; j <= n; j++) 
  51. /* 發(fā)現(xiàn)更小的權(quán)值 */ 
  52. if (graph[minid][j] < lowcost[j]) 
  53. /* 更新權(quán)值信息 */ 
  54. lowcost[j] = graph[minid][j]; 
  55.  
  56. /* 更新最小權(quán)值邊的起點 */ 
  57. mst[j] = minid; 
  58. /* 返回最小權(quán)值和 */ 
  59. return sum; 
  60.  
  61. int main() 
  62. int i, j, k, m, n; 
  63. int x, y, cost; 
  64. char chx, chy; 
  65.  
  66. /* 讀取節(jié)點和邊的數(shù)目 */ 
  67. scanf("%d%d", &m, &n); 
  68. getchar(); 
  69.  
  70. /* 初始化圖,所有節(jié)點間距離為無窮大 */ 
  71. for (i = 1; i <= m; i++) 
  72. for (j = 1; j <= m; j++) 
  73. graph[i][j] = MAXCOST; 
  74.  
  75. /* 讀取邊信息 */ 
  76. for (k = 0; k < n; k++) 
  77. scanf("%c %c %d", &chx, &chy, &cost); 
  78. getchar(); 
  79. i = chx - 'A' + 1; 
  80. j = chy - 'A' + 1; 
  81. graph[i][j] = cost; 
  82. graph[j][i] = cost; 
  83.  
  84. /* 求解最小生成樹 */ 
  85. cost = Prim(graph, m); 
  86.  
  87. /* 輸出最小權(quán)值和 */ 
  88. printf("Total:%d/n", cost); 
  89.  
  90. //system("pause"); 
  91. return 0;  

Kruskal算法:

 

 
  1. void Kruskal(Edge E[],int n,int e) 
  2. int i,j,m1,m2,sn1,sn2,k; 
  3. int vset[MAXE]; 
  4. for (i=0;i<n;i++) vset[i]=i; //初始化輔助數(shù)組 
  5. k=1; //k表示當(dāng)前構(gòu)造最小生成樹的第幾條邊,初值為1 
  6. j=0; //E中邊的下標(biāo),初值為0 
  7. while (k<n) //生成的邊數(shù)小于n時循環(huán) 
  8. {  
  9. m1=E[j].u;m2=E[j].v; //取一條邊的頭尾頂點 
  10. sn1=vset[m1];sn2=vset[m2]; //分別得到兩個頂點所屬的集合編號 
  11. if (sn1!=sn2) //兩頂點屬于不同的集合,該邊是最小生成樹的一條邊 
  12. {  
  13. printf(" (%d,%d):%d/n",m1,m2,E[j].w); 
  14. k++; //生成邊數(shù)增1 
  15. for (i=0;i<n;i++) //兩個集合統(tǒng)一編號 
  16. if (vset[i]==sn2) //集合編號為sn2的改為sn1 
  17. vset[i]=sn1; 
  18. j++; //掃描下一條邊 

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
日韩精品中午字幕| 97香蕉超级碰碰久久免费的优势| 一区二区电影| 色影视在线视频资源站| 国产又粗又大又爽视频| 可以免费观看的黄色网址| 九色精品国产蝌蚪| 国产精品毛片久久久久久久久久99999999| 成人毛片视频在线观看| 精品国产精品国产精品| 男女激情无遮挡| 日韩欧美性视频| 乱一区二区三区在线播放| 精品亚洲aⅴ无码一区二区三区| 日韩av免费电影| 亚洲国产精品传媒在线观看| 亚洲精品蜜桃乱晃| 懂色av中文一区二区三区天美| 欧美精品videosex极品1| 全免费一级毛片免费看| eeuss影院eeuss最新直达| 另类中文字幕国产精品| 午夜影院在线观看国产主播| 海角国产乱辈乱精品视频| 麻豆传媒一区二区三区| 亚洲精品**中文毛片| 粉嫩绯色av一区二区在线观看| 日韩不卡高清视频| 夜夜爽99久久国产综合精品女不卡| 亚洲妇女无套内射精| 秋霞午夜理伦电影在线观看| 国产av无码专区亚洲av麻豆| 亚洲午夜91| 午夜精品影视国产一区在线麻豆| 成+人+亚洲+综合天堂| 久久手机免费观看| 欧美日韩视频在线观看一区二区三区| 日韩黄色一级片| 国产精品一区二区小说| 日韩毛片免费视频一级特黄| 999香蕉视频| 国产精品日韩在线| 中文字幕一区二区三区四区| 中日韩精品一区二区三区| 欧美激情成人在线视频| h网站免费看| 日韩美女一区| 中国人xxxxx69免费视频| 国产午夜精品在线观看| 欧美xxxx少妇| 成人午夜剧场视频网站| 美日韩一二三区| 日韩丝袜情趣美女图片| 国产污片在线观看| 国产成人精品亚洲精品| 尤物av一区二区| 日本久久网站| 久久精品99国产精品| 性xxxxxxxxx| 日韩在线观看网站| 最新国产在线视频| avav成人| 国产一区二区黑人欧美xxxx| 激情欧美一区二区三区| 九九大香尹人视频免费| 五月天综合视频| 三级4级全黄60分钟| 亚洲熟女一区二区三区| 久久国产精品99久久人人澡| 国产成人av电影| 久久高清免费视频| 91精品久久久久久久久久| 一级做a爰片久久毛片美女图片| 日本一本久久| 欧美二区三区91| 91香蕉国产线在线观看| 国产剧情久久久久久| 妖精视频在线观看免费| 在线看国产日韩| 韩国成人精品a∨在线观看| 91天堂在线视频| 欧美一区二区在线| 男人添女人下部高潮视频在线观看| 一区二区视频免费完整版观看| 国产成人一区三区| 日韩av影院| 久久久综合视频| 岛国片免费观看| 欧美成人精品二区三区99精品| 国产成人丝袜美腿| 欧美一区二区三区系列电影| 五月精品在线| 欧美日韩亚州综合| 中文字幕18页| 成视频在线免费观看| 欧美白人猛性xxxxx交69| 手机在线成人免费视频| 免费一级欧美片在线观看网站| 丝袜足控免费网站xx网站| 精品国产三级a∨在线| 草草影院在线观看| 日本欧美加勒比视频| 黄色aaa大片| 国产精品成人久久| 精品免费日韩av| 国产中年熟女高潮大集合| 91av影院| 久久精品国产69国产精品亚洲| 国产一区福利视频| 人妻丰满熟妇av无码区hd| 韩国精品免费视频| 亚洲影视中文字幕| 极品日韩av| 国产精品污网站| 欧美肉大捧一进一出免费视频| 国产理论视频在线观看| 蜜臀av性久久久久蜜臀aⅴ四虎| 日韩欧美aaaaaa| 成年人在线看| 欧美a在线视频| 不卡的国产精品| 亚洲第一成人在线| 天堂av中文在线观看| 亚洲视频欧洲视频| 成年人在线视频| 国产精品久久久久aaaa樱花| 精品国产一区二区三区噜噜噜| 久久中文字幕无码| 欧美一级在线免费| 亚洲天堂开心观看| 一区二区在线观看视频| 一本本久综合久久爱| 欧美一区二区三区影院| 国产精品久线观看视频| 男人的天堂在线| 另类ts人妖一区二区三区| 午夜亚洲精品| 精品国精品国产自在久不卡| 国产模特精品视频久久久久| 青青国产在线视频| 中文字幕人妻一区二区三区视频| 亚洲精品看片| 日韩人妻一区二区三区蜜桃视频| 精品国产综合区久久久久久| 欧美日韩一本到| 91精品啪在线观看国产81旧版| youjizz在线播放| 欧美www视频在线观看| 99热这里只有精品8| 搡老女人一区二区三区视频tv| 在线观看中文| 亚洲精品国产一区二区在线| 国内视频自拍在线视频| 免费观看黄色的网站| 久久99精品一区二区三区三区| 亚洲成人久久精品| 国产精品无码专区av免费播放| 亚洲一区亚洲二区亚洲三区| 精品99久久久久久| 999人在线精品播放视频| 最新国产精品精品视频| 中文字幕第一区综合| 欧美超强性xxxxx| 高清av中文在线字幕观看1| 国内精品视频| 国产美女在线一区二区三区| www.com久久久| 亚洲第一页中文字幕| 香蕉成人app| 国产精品一区在线观看| 99久久九九| 黄网站网址视频| 国产美女福利在线| 成人免费在线观看视频网站| 亚洲a∨精品一区二区三区导航| 国产精品中文字幕在线| 在线91免费看| 美乳在线观看| 精品国产va久久久久久久| 国产免费人做人爱午夜视频| 亚洲精品视频自拍| 欧美日韩电影免费看| 一道本在线观看| 免费一级做a爰片久久毛片潮| 一区二区三区中文| 久久久久久久久久久影视| 伊人久久综合97精品| www.成人.com| 黄网动漫久久久| 亚洲tv在线观看| 美女爽到呻吟久久久久| 天天综合网久久综合网| 91激情在线视频| 日本高清一区二区视频| 在线视频免费一区二区| 男女男精品视频网站| 一个人看的www视频免费观看| 久热这里只精品99re8久| 欧美国产偷国产精品三区| 欧美日韩国产高清一区| 一广人看www在线观看免费视频| av成人老司机| 99视频在线精品国自产拍免费观看| 三级小说欧洲区亚洲区| 国产69精品久久久久9999| 久久黄色精品视频| 国产精品福利一区二区三区| 国产精品免费视频观看| 在线免费电影观看| 亚洲国产综合自拍| 精品国产乱码久久久久久图片| 国产精品伦一区二区三级视频| av最新在线| 精品综合久久久| 99精品国产在热久久下载| 成人av一区二区三区在线观看| 国模无码视频一区| 国产成a人亚洲精v品在线观看| 黑色丝袜福利片av久久| 亚洲综合成人婷婷小说| 久久亚洲导航| av黄色免费网站| 中文字幕在线观看欧美| 日韩综合网站| 18成人在线| 欧美精品小视频| www视频网站| 黄色影院一级片| 国产做受69高潮| 国模私拍一区二区| 天天爱天天做色综合| 日本中文字幕高清| 精品国产乱码久久久久久蜜坠欲下| 摸bbb搡bbb搡bbbb| 精品人人人人| 欧美一级视频在线播放| 国产亚洲永久域名| 97在线超碰| 国产人妻精品午夜福利免费| 四虎影视18库在线影院| 蜜桃av中文字幕| 亚洲午夜久久久久久久久电影网| 日韩精品视频观看| 婷婷在线观看视频| 亚洲免费资源在线播放| 久久亚洲国产精品成人av秋霞| 国产精品免费久久久| 欧美精品与人动性物交免费看| 可以看污的网站| 1区2区3区精品视频| 国产精品毛片无遮挡高清| 影音先锋另类| 精品免费久久久久久久| 一区二区三区四区高清精品免费观看| 中文字幕免费在线观看视频| av永久免费观看| 国内在线视频| 国内精品2019| 亚洲色图色老头| 狠狠88综合久久久久综合网| 日本aa大片在线播放免费看| 色三级在线观看| 国产一区2区在线观看| 欧美国产精品一区二区三区| 日韩久久精品网| 亚洲天堂一区二区三区| 91一区二区三区在线观看| 写真福利片hd在线播放| 熟妇人妻久久中文字幕| 日韩影院免费视频| a级片在线免费观看| 国产黄色免费网站| 日本簧片在线观看| 台湾佬中文娱乐久久久| 国产精品美女免费看| 337p日本欧洲亚洲大胆色噜噜| а√天堂8资源中文在线| 成人亚洲精品| 九色porn蝌蚪| 亚洲欧美日产图| 亚洲精品乱码久久久久久蜜桃动漫| 久久精品一区二区三区中文字幕| 国产精品成人aaaaa网站| 日韩欧美国产高清| 99久久精品国产网站| 中文字幕精品在线观看| 亚洲国产精品久久网午夜小说| 国产伊人精品在线| 久久伊人91精品综合网站| 国产z一区二区三区| 日韩精品久久一区| 久久精品二区| 日韩免费在线| 中文字幕综合在线| 亚洲草草视频| 色婷婷av一区二区三区久久| 国产精品zjzjzj在线观看| 夜先锋资源站| 成人短剧在线观看| 在线观看国产原创自拍视频| 中文字幕在线看视频国产欧美| 欧美巨猛xxxx猛交黑人97人| 李宗瑞91在线正在播放| 国产一区二区三区站长工具| 欧美性xxxx交| 激情五月俺来也| 亚洲free嫩bbb| japanese国产在线观看| 最近2019好看的中文字幕免费| 亚洲aⅴ乱码精品成人区| 国产美女被遭强高潮免费网站| 亚洲精品98久久久久久中文字幕| 91精品免费观看| 在线成人免费av| 亚洲精品传媒| 日本在线不卡一区二区| 国产婷婷视频在线| 亚洲线精品一区二区三区八戒| 99久久精品免费看国产免费软件| 国产免费播放一区二区| japanese中文字幕| 国产成人av一区二区| 无人码人妻一区二区三区免费| 一区二区不卡在线观看| 在线精品亚洲一区二区| 性欧美极品xxxx欧美一区二区| 国产区成人精品视频| 人人干人人干|