1樓:日尼丨禾爾
最短路徑問題
#include
#include
#define max 10000
#define maxlen 40
#define vextype int
#define adjtype int
typedef struct
mgraph;
mgraph create_mgraph()
for(i = 0; i < mg.vexnum; i++) /*鄰接矩陣初始化*/
for(j = 0; j < mg.vexnum; j++)
mg.arcs[i][j] = max;
for(k = 1; k <= mg.ar**um; k++)
printf("輸入此邊權值 : "); /*輸入弧上之權值*/
scanf("%d", &h);
mg.arcs[i - 1][j - 1] = h;}
return mg;
} main()
for(i = 0; i < n; i++)
for(i = 0; i < n; i++) /*s陣列初始化*/
s[i] = 0;
s[v0] = 1;
for(i = 0; i < n; i++) /*按最短路徑遞增演算法計算*/
s[u] = 1; /*u頂點是求得最短路徑的頂點編號*/
for(j = 0; j < n; j++)
if(s[j] == 0 && dist[u] + cost[u][j] < dist[j])/*調整dist*/
/*path記錄了路徑經過的頂點*/
} for(i = 0; i < n; i++) /*列印結果*/
if(s[i] == 1)
printf("%d ", u + 1);
printf(" d = %d\n", dist[i]); /*有路徑*/
} else
printf("%d <- %d d= max\n ", i + 1, v0 + 1);/*無路徑*/
printf("\n\n");}
2樓:
這個問題,首先要定義一個有向帶權圖,就像這樣typedef
structmgraph;
在你這個問題中,五個城市分別代表圖的五個頂點,由於時間原因,我就先大概這樣給你點一下。給我加懸賞分就行
初二數學最短路徑問題,初二數學最短路徑問題
1 作cd垂直於oa,ce垂直於ob,連線de。作c關於oa或ob的一個對稱點,然後連線 數學初二最短路徑問題 解 記河的兩岸為l,l 將直線l平移到l 的位置,則點a平移到a 連線a b交l 與d,過d作dc l與c,則橋架在cd處就可以了.八年級上冊數學題,關於最短路徑問題 把on放水平,以on...
資料結構的問題,資料結構的定義問題
就是幾個小錯誤 對照著看下就行,關於頭指標,如果不採用返回值的方法建立,就得使用指標的指標或者對指標的引用了。指標本身也是一個變數,它有自己的地址同時它的值也是地址,所以不採用引用或者指標的指標這樣傳遞,在函式作為實參傳遞後,函式內的指標就是另一個臨時的指標了,雖然它們儲存的值是一樣的,但是在進行分...
資料結構問題
談談如何學習資料結構 1.如果你沒有學過c語言,或者c語言學的不好的時候把資料結構當成一本數學書來學,它所講述的都是一些簡單的圖論。在你的大腦中的主線不能丟失 線性結構,樹結構和圖結構。當你不再考慮複雜的程式設計時,僅僅研究個個離散點之間的關係,似乎資料結構也就不會那麼難了。2.學習好了抽象的離散點...