建立邊集圖(createedgegraph)
列印圖(print)
排序函式(sort)
頂點下標查詢函式(locatevex)
查詢雙親函式(findroot)
克魯斯卡爾演算法(minispantree_kruskal)
typedef
struct
edge;
//邊集陣列edge的單元
typedef
struct
edgegraph;
void
sort
(edgegraph *e)}}
}
int
findroot
(int t,
int parent)
//t接收到是結點在vertex陣列中的下標
return t;
//將找到的根節點返回,若沒有根節點返回自身
}
void
minispantree_kruskal
(edgegraph *e)
printf
("\n 最小生成樹(kruskal):\n\n");
//3.
for(num=
0,i=
0;iedgenum;i++)}
}}
#include
#include
#define vertexmax 20
//最大頂點數為20
typedef
char vertextype;
typedef
struct
edge;
//邊集陣列edge的單元
typedef
struct
edgegraph;
void
createedgegraph
(edgegraph *e)
}void
print
(edgegraph *e)
printf
("\n\n");
printf
(" 邊集陣列edge:\n\n");
printf
("\t\tbegin end weight\n");
for(i=
0;iedgenum;i++
)printf
("\n-----------------------------------\n");
}void
sort
(edgegraph *e)}}
}int
locatevex
(edgegraph *e,vertextype v)
//查詢元素v在一維陣列 vertex 中的下標,並返回下標
}printf
("no such vertex!\n");
return-1
;}intfindroot
(int t,
int parent)
//t接收到是結點在vertex陣列中的下標
return t;
//將找到的根節點返回,若沒有根節點返回自身
}void
minispantree_kruskal
(edgegraph *e)
printf
("\n 最小生成樹(kruskal):\n\n");
1.部分文圖來自 懶貓老師
kruskal 最小生成樹
include include 產生隨機數組用 include 同上 include using namespace std 1 帶權邊的類myarc class myarc bool operator const myarc arc myarc myarc int beginvex,int end...
最小生成樹Kruskal
最小生成樹有兩個特點,乙個是保證了所有邊的和是最小值,另乙個是保證了所有邊中的最大值最小。struct edge bool friend operator edge a,edge b 構邊 vectoredge int id max int mini void initial void input ...
最小生成樹(kruskal)
kruskal演算法 1 記graph中有v個頂點,e個邊 2 新建圖graphnew,graphnew中擁有原圖中相同的e個頂點,但沒有邊 3 將原圖graph中所有e個邊按權值從小到大排序 4 迴圈 從權值最小的邊開始遍歷每條邊 直至圖graph中所有的節點都在同乙個連通分量中 if 這條邊連線...