Prime演算法生成最小生成樹

2022-04-30 17:33:10 字數 1206 閱讀 6695

雖說是生成樹,但我只將生成的邊輸出了。至於怎麼用這些邊來建立樹。。。我不知道_(:з」∠)_ 

1

//prime方法生成最小生成樹

2void graphadjacencylistweight::generatemscpprime(int

firstvertex)

1213 closeedge[firstvertex].startver = 0

;14 closeedge[firstvertex].weight = 0;15

//起點放進容器

16 visited[firstvertex] = 1;17

18//

將起點的鄰接資訊放入closeedge

19for (auto tmpptr = (vectorvertexlist[firstvertex])->firstarc; tmpptr != nullptr; tmpptr = tmpptr->nextarc)

2324

int k = -1;25

while (!isallvisited(visited))

3334

//銷毀

35delete

visited;

36delete

closeedge;

37 }

prime

1

intgraphadjacencylistweight::searchminweight(closeedge closeedge) 9}

10if (index == -1

) 14

return

index;15}

1617

void graphadjacencylistweight::updatecloseedge(closeedge ce, int

k) 27

if (ce[tmpptr->adjacencynode].weight >= tmpptr->weight || ce[tmpptr->adjacencynode].weight == -1

) 31

}32 }

related functions

執行結果:

參照書本的174頁的那個圖

最小生成樹 Prime演算法

對於乙個圖,它的所有生成樹中必有乙個 邊的權值最小 的生成樹,我們把它稱為最小生成樹。概念很抽象,換做實際問題 有十個城市,各個城市之間距離或遠或近。需要建設乙個道路網,把十個城市連線在一起,要求道路網的道路長度最小。各個城市的連線可以抽象為乙個圖,本質上即是求該圖的乙個最小生成樹。每乙個圖可能有多...

最小生成樹 prime演算法

問題 c 建立通訊 時間限制 1 sec 記憶體限制 128 mb 提交 7 解決 4 提交 狀態 討論版 題目描述 據不完全統計,受 影響,四川大部分災區通訊陷入癱瘓,數千個基站因斷電 傳輸中斷等原因退出服務,目前總公司已緊急部署對受災地區進行通訊搶修。按照應急通訊保障預案,必須盡快 付出代價最小...

最小生成樹 prime演算法

生成樹頂點集合,初始只含起點 v0。visit i 1 i點已在生成樹中 lowcost i 生成樹中的點 到頂點 i 的最短距離。演算法過程 1.初始化生成樹,一開始只將起點 v0 加入到 樹中。2.初始化 lowcost 陣列,初值為 v0 到各頂點的距離,無邊則為 inf。重複以下步驟,直到所...