普里姆(Prim)演算法

2021-07-31 16:44:20 字數 1202 閱讀 8512

/*********************普里姆(prim)演算法******************/

//網類

template

class netgraph

//析構函式

void print();//列印鄰接矩陣

void minispantree_prim();//prim演算法生成最小生成樹

};//獲取資料el在頂點表中的位置

template

int netgraph::getposition(type el)

return -1;

}//外界讀取乙個資料

template

type netgraph::readtype()

//建立網圖(手動輸入)

template

netgraph::netgraph()

//頂點初始化

for (i = 0; i < this->numvertexes; i++)

//鄰接矩陣初始化

for (i = 0; i < this->numvertexes; i++)

}//邊初始化

for (i = 0; i < this->numedges; i++)

cout

<< "input a weight value: ";

cin >> weight;

this->arc[p1][p2] = weight;

this->arc[p2][p1] = weight;

}}//列印鄰接矩陣

template

void netgraph::print()

}//prim演算法生成最小生成樹

template

void netgraph::minispantree_prim()

for (i = 0; i < this->numvertexes; i++)

j++;

}cout

<< "("

<< adjvex[k] << ", "

<< k << ") ";

lowcost[k] = 0;//當前頂點的權值設定為0,表示此頂點已經完成任務

for (j = 1; j < this->numvertexes; j++)}}

}//測試程式

int main()

普里姆Prim演算法介紹

普里姆 prim 演算法,和克魯斯卡爾演算法一樣,是用來求加權連通圖的最小生成樹的演算法。基本思想 對於圖g而言,v是所有頂點的集合 現在,設定兩個新的集合u和t,其中u用於存放g的最小生成樹中的頂點,t存放g的最小生成樹中的邊。從所有u u,v v u v u表示出去u的所有頂點 的邊中選取權值最...

演算法之 普里姆(Prim)演算法

普里姆演算法 prim s algorithm 是圖中的一種演算法,可在加權連通圖中搜尋最小生成樹。該演算法的作用就是根據圖中權值找到連線所有頂點的最短路徑,也就是連線所有頂點的最小權值之和,也是這個加權圖中的最小生成樹。1.選取權值最小邊的其中乙個頂點作為起始點。2.找到離當前頂點權值最小的邊,並...

深度學習普里姆演算法(Prim)

如果你對資料結構了解不深,又想要學習普里姆演算法,建議你看看我這篇,我盡量往細緻的方向寫,如果有些大佬認為我寫的比較囉嗦,請見諒,畢竟我的目的是為了讓資料結構小白能夠在理解普里姆演算法上相對容易一些。由於為了清楚地說明普里姆演算法,可能會犧牲一些嚴謹性,但只講嚴謹的術語會加大理解難度,尤其對於非科班...