prim演算法和dijkstra演算法差不多,只不過前者每次併入乙個離當前集合最近的點,乙個併入離原點最近的點(前提都是vis[u]=false);
prim演算法從哪個點開始都可以,所以不需要引數,這裡預設起點是0;返回生成樹權值之和。
const int maxn = 500 + 10;
const int inf = 0x3fffffff;
//prim
bool vis[maxn] = ;
int g[maxn][maxn], d[maxn], n;
int prim() ;
int d[maxn], n;
int prim()
if (u == -1)return;
//3vis[u] = true;
sum_weight += d[u];
for (int j = 0; j < n; j++)
//4return sum_weight;
}
鄰接矩陣實現Prim演算法
prim是尋找最小生成樹的演算法,本文利用鄰接矩陣,乙個比較方便的方式來進行prim演算法。鄰接矩陣是儲存有向或無向圖的方式,若不帶權,一般用 0 或 inf 表示未連線,用 1 表示連線。如果帶權,可以用乙個矩陣來表示,1是未連線,若連線,則數值等於權值 也可以用兩個矩陣分別表示連線情況和權值。本...
鄰接表轉鄰接矩陣
假設無向圖g採用鄰接矩陣儲存,編寫乙個演算法輸出鄰接表。description 第一行為乙個 整數n,表示頂點的個數 頂點 編號為0到n 1 接下來是為乙個n n大小的 整數矩陣,表示圖的鄰接關係。數字為0表示不鄰接,1表示鄰接。input 輸出圖g的鄰接表。第一行表示頂點0可直接到達的 頂點編號。...
鄰接矩陣與鄰接表
鄰接矩陣表示圖 public class graph private int vertexnum private int edgenum private int g 鄰接矩陣 public graph int vertexnum public void insertedge edge edge pu...