亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

Chinaunix

標題: C  最小生成樹算法一疑問,拜謝回答@-- 已解決:個人眼力問題,打擾! [打印本頁]

作者: FaintKnowledge    時間: 2012-09-19 15:33
標題: C  最小生成樹算法一疑問,拜謝回答@-- 已解決:個人眼力問題,打擾!
本帖最后由 FaintKnowledge 于 2012-09-19 17:06 編輯
  1. 1 void MiniSpanTree_Prim(MGraph G)
  2. 2 {
  3. 3         int min,i,j,k;
  4. 4        int  adjvex[MAXVEX];                
  5. 5        int         lowcost[MAXVEX];               
  6. 6        lowcost[0] =0;                               
  7.                                                        
  8. 7        adjvex[0] = 0 ;                               
  9. 8        for(i = 1; i < G.numVertexes; i++) [color=Red]//循環(huán)除下標為0外的全部頂點;[/color]
  10. 9        {
  11. 10                lowost[i] = G.arc[0][i];
  12. 11                adjvex[i] = 0;                  
  13. 12        }
  14. 13        for(i = 1;i < G.numVertexes;i++)     [color=Red]//這兩次循環(huán)為什么是從等于1開始啊???G.arc[0][0]不需要遍歷了嗎?[/color]
  15. 14        {  
  16. 15                min = INFINITY;
  17. 16                j=1;k=0;         
  18. 17                while( j < G.numVertexes)       
  19. 18                {
  20. 19                        if(lowcost[j] != 0 && lowcost[j] < min)  
  21. 20                        {
  22. 21                                min =lowcost[j];  
  23. 22                                k = j;                          
  24. 23                        }
  25. 24                        j++;
  26. 25                }
  27. 26                printf("(%d,%d)",adjvex[k],k);
  28. 27                lowcost[k] = 0;               
  29. 28                for(j =1 ;j < numVertexes;j++)         
  30. 29                {
  31. 30                        if(lowcost[j] != 0 && G.arc[k][j] < lowcost[j])
  32. 31                        {       
  33. 32                                lowcost[j] = G.arc[k][j];       
  34. 33                                adjvex[j] = k;                       
  35.                                                                   
  36. 34                        }
  37. 35                }
  38. 36        }
  39. 37}
復(fù)制代碼

作者: linux_c_py_php    時間: 2012-09-19 15:35
因為下標0的結(jié)點初始化就已經(jīng)在最小生成樹里了, 這么淺顯的道理, 大哥.
作者: linux_c_py_php    時間: 2012-09-19 15:43
@FaintKnowledge
linux_c_py_php 發(fā)表于 2012-09-19 15:35
因為下標0的結(jié)點初始化就已經(jīng)在最小生成樹里了, 這么淺顯的道理, 大哥.

作者: FaintKnowledge    時間: 2012-09-19 15:45
回復(fù) 2# linux_c_py_php


   
那再追問個問題,比如這個圖中:

該選1,還是5啊? 從哪個步驟開始的?
作者: FaintKnowledge    時間: 2012-09-19 15:46
回復(fù) 3# linux_c_py_php


    我了個去了....不用鄙視我兩次吧??????/
作者: linux_c_py_php    時間: 2012-09-19 15:50
本帖最后由 linux_c_py_php 于 2012-09-19 15:50 編輯

當然選1, 記住:

循環(huán)是不斷的將距離最小生成樹最近的結(jié)點加入到最小生成樹, 把握這個概念應(yīng)該很容易理解吧.
作者: FaintKnowledge    時間: 2012-09-19 15:52
回復(fù) 6# linux_c_py_php

   這倆應(yīng)該都選...

   
作者: linux_c_py_php    時間: 2012-09-19 16:36
... ... 最后肯定都選, 否則也不叫最小生成樹了, 我說的是考慮這兩個選擇的話選1.

你已經(jīng)讓我無語了.
FaintKnowledge 發(fā)表于 2012-09-19 15:52
回復(fù) 6# linux_c_py_php

   這倆應(yīng)該都選...

作者: FaintKnowledge    時間: 2012-09-19 17:04
本帖最后由 FaintKnowledge 于 2012-09-19 17:06 編輯

回復(fù) 8# linux_c_py_php

不好意思,
我剛才只是覺得這個圖很抽象,把矩陣列出來也掰不過勁兒來...看的時候沒看到這里是i=1,腦子里一直掛著i=0呢...我發(fā)誓我看的時候這里是"0"
初始化V0加入最小生成樹,這個我能理解,但是V1和V5,這一步糾結(jié)來著,如果是這個循環(huán)i=0,這真是不容易找到是怎么算的...

我的理解:算法中:8-12行
8        for(i = 1; i < G.numVertexes; i++)       //循環(huán)除下標為0外的全部頂點;((((((郁悶...看的時候沒看到這里是i=1,腦子里一直掛著i=0呢...我發(fā)誓我看的時候是"0"))))))
9        {
10                lowost = G.arc[0];                //將V0頂點與之有邊的權(quán)值存入數(shù)組;這里將保存2個,10,11
11                adjvex = 0;                  
12        }


總之:多謝多謝!!!一點小意思,笑納 !!!!






作者: linux_c_py_php    時間: 2012-09-19 17:13
回帖賺RMB...
作者: FaintKnowledge    時間: 2012-09-24 14:06
回復(fù) 10# linux_c_py_php


    最小生成樹越看越糊涂了...
    又搞不清楚是在哪一步取得的V1(權(quán)值為10的)這點了....勞駕指點一下...(大致的執(zhí)行過程)


   如果用矩陣表示的話,是遍歷上三角嗎?但吧小的加起來好像一共才是98,比最小還最小...




歡迎光臨 Chinaunix (http://www.72891.cn/) Powered by Discuz! X3.2