實驗準備
最小生成樹問題,求最小生成樹的prim演算法
實驗目的
運用最小生成樹思想和求最小生成樹程式解決實際問題
實驗過程
八口海上油井相互間距離如下表,其中1號井離海岸最近,為5km。問從海岸經1號井鋪設油管把各井連線起來,怎樣連油管長度最短(為便於檢修,油管只准在油井處分叉)?
prim演算法原理:
1)以某乙個點開始,尋找當前該點可以訪問的所有的邊;
2)在已經尋找的邊中發現最小邊,這個邊必須有乙個點還沒有訪問過,將還沒有訪問的點加入我們的集合,記錄新增的邊;
3)尋找當前集合可以訪問的所有邊,重複2的過程,直到沒有新的點可以加入;
4)此時由所有邊構成的樹即為最小生成樹。
#include using namespace std;
#define max 100
#define maxcost 100000
double gph[max][max];
double prim(double graph[max], int n)
mintree[1] = 0;
for(i=2; i<=n; i++)
}cout << "v" << mintree[minid] << "-v" << minid << "=" << min << endl;
sum += min;
shortcost[minid] = 0;
for(j=2; j<=n; j++)}}
return sum;
}int main()
}cout<< "請輸入兩節點及之間的權值:" <> i >> j >> cost;
gph[i][j] = cost;
gph[j][i] = cost;
}cost = prim(gph, m);
cout << "最小權值和為:" << cost 執行截圖:
離散數學實驗
include using namespace std char c 5 5 int banqun 0 是否為半群 int duyi 0 是否為獨異點 int yao 確定么元 void ifre for int j 0 j 4 j if flag else cout 每行每列都不存在重複元素 vo...
離散數學實驗一
usr bin env python coding utf 8 time 2020 9 18 09 33 author albert darren file 離散數學實驗一.py software pycharm 實驗1 defexperiment1 loop count 4 truth value...
離散數學實驗報告存檔
2018離散數學實驗報告存檔 旅行經銷商問題 函式addpace用來將權重相加 return addpace int conpace int str 6 conpace 函式用來比較各個城市的最短路,得出最優路 return min void main void flag陣列用來判斷選擇的城市是否已...