1.問題
舉乙個例項,畫出採用prim演算法構造最小生成樹的過程,並按實驗報告模板編寫演算法。
舉乙個例項,畫出採用kruskal演算法構造最小生成樹的過程,並按實驗報告模板編寫演算法。
2.解析
1、prim演算法:首先從圖g中任意乙個頂點開始。假設這個頂點叫a。將a加入乙個群。然後比較群外所有與這個群中的頂點相鄰的邊,將權重最小的邊的另外乙個端點加入群中。然後重複上述操作直到所有頂點都已被加入到群中。
2、kruskal演算法:首先,將每個頂點放入其自身的資料集合中。然後,按照權值的公升序來選擇邊。當選擇每條邊時,判斷定義邊的頂點是否在不同的資料集中。如果是,將此邊插入最小生成樹的集合中,同時,將集合中包含每個頂點的聯合體取出,如果不是,就移動到下一條邊。重複這個過程直到所有的邊都探查過。
3.設計
(一)prim演算法
int
prim
(int e[
][maxx]
,int n)
mst[1]
=0;for
(i =
2; i <= n; i++)}
cout <<
"v"<< mst[minid]
<<
"-v"
<< minid <<
"="<< min << endl;
sum +
= min;
lowcost[minid]=0
;for
(j =
2; j <= n; j++)}
}return sum;
}
(二)kruskal演算法
int kruskal()
}return sum;
}
4.分析
[演算法複雜度推導]
5.原始碼
實驗一作業
資料結構實驗報告 一 實驗一 線性表的基本操作實現及其應用 1 熟練掌握線性表的結構特點,掌握順序表的基本操作。2 鞏固 c 相關的程式設計方法與技術。3 學會使用順序表解決實際問題。建立 n 個元素的順序表 n 的大小和表裡資料自己確定 實現相關的操作 輸出,插 入,刪除,查詢等功能。編寫完整程式...
一 PTA實驗作業
本週要求挑選3道題目寫設計思路,除錯過程。設計思路用偽 描述。題目選做要求 順序表選擇一題 6 2,6 3,7 1選一題 單鏈表選擇一題 6 1不能選 有序表選擇一題 6 3 jmu ds 順序表刪除重複元素 6 2 jmu ds 單鏈表逆置 7 1 兩個有序鍊錶序列的合併 二.設計思路 偽 或流程...
實驗作業 鎖屏應用一
一 實驗 部分 meactivity import android.os.bundle import android.os.handler import android.os.message import android.annotation.suppresslint import android....