最小生成樹之普里姆演算法

2021-07-23 07:36:42 字數 818 閱讀 9837

什麼是最小生成樹?

定義:給定乙個帶權無向連通圖,從指定結點出發能夠連線所有結點並且權值總和最小的樹叫最小生成樹,也叫權重最小樹。

那麼普里姆演算法是怎麼構造最小生成樹的?

首先將指定的結點加到到頂點集合v中,由集合內和集合外構成的所有邊當中選取權值最小的邊,將其對應的集合外的點加入到集合中,重複此操作,直到所有點加入到集合v中,最小生產樹構建完畢。

#include

#define maxint 2147483647

#define m 11

using

namespace

std;

int graph[m][m];

int prime(int n)

pre[1] = 0;

int sum = 0;

for(int i=2;i<=n;i++)

}sum += mmin;

lowcost[id] = 0;

cout

<< "v"

<< pre[id] << "->v"

<< id << " = "

<< mmin << endl;

for(int j=2;j<=n;j++) }}

return sum;

}int main()

}cin >> m;

for(int i=1;i<=m;i++)

cout

<< prime(n) << endl;

return

0;}

最小生成樹(普里姆演算法)

關於什麼是prim 普里姆演算法 在實際生活中,我們常常碰到類似這種一類問題 如果要在n個城市之間建立通訊聯絡網,則連通n個城市僅僅須要n 1條線路。這時。我們須要考慮這樣乙個問題。怎樣在最節省經費前提 下建立這個通訊網.換句話說,我們須要在這n個城市中找出乙個包括全部城市的連通子圖,使得 其全部邊...

最小生成樹 普里姆演算法

普利姆演算法 最小生成樹 把所有頂點分為 2 個集合 乙個表示已經選中的頂點集合 另乙個表示未選中的頂點集合 例如 a,b,c,d,e 五個頂點 1.任意選擇乙個頂點 放在 已經選中的頂點集合中 假如 選a 2.將a 與未選中頂點集合中 選擇 一頂點 條件 權值最小的乙個頂點 如何權值相同 則任意選...

最小生成樹 普里姆演算法

當我們要求解n個連線城市之間的路線問題,就需要我們進行乙個計算。而在連通網上面,我們稱這類問題為最小代價生成樹 最小生成樹 問題。今天我們主要討論的是用普里姆演算法實現最小生成樹。如圖所示,a圖是乙個有權值的連通圖。要對其進行最小生成樹求解,假設初始點為v1,尋找與1有關係而且權值最小的頂點 圖源嚴...