普里姆演算法

2021-07-24 13:58:41 字數 925 閱讀 6838

普里姆演算法的基本思想如下:

假設n=}是連通網,te是n上最小生成樹中邊的集合。從u=開始,te={}開始,重複執行下述操作:在所有的u屬於u,v屬於v-u的邊(u,v)的邊中找到權值最小的一條邊,並且併入te,同時u併入u,直到u=v;

先設乙個輔助陣列closedge[max],初始時先把第乙個結點存入closedge[i].adjvex,令closedge陣列中adjvex的初始值全部為v1結點,並把權值存入closedge[i].lowcost中,

每次執行演算法時,從u-v中選取權值最小的一條邊,併入te。

#include #include #define max 100

typedef int adjmatrix[max][max];

typedef structmgraph;

typedef structclosedge[max];

typedef structedge;

int locateadj(mgraph &g, char v)

return -1;

}void createmgraph(mgraph &g)

for(i = 0; i < g.vexnum; i ++) }

for(k = 0; k < g.arcnum; k ++)

}void prim(mgraph g, int k)

} e.close[k].lowcost = 0;

for(i = 1; i < g.vexnum; i ++)

} printf("(%c,%c)\n",e.close[k].adjvex,g.vexs[k]);

e.close[k].lowcost = 0;

for(j = 0; j < g.vexnum; j ++)

} }

}int main()

普里姆演算法

include include include include using namespace std define max name 5 define max vertex num 20 權的上限值 typedef char vertex max name 頂點名字串 typedef int ad...

普里姆演算法

include include include using namespace std define maxint 32767 define maxnum 100 typedef struct vnode,closedge maxnum typedef struct amgraph intlocat...

普里姆演算法

實現 package datastructure public class primdemo for string vertex vertexs a b 5 a c 7 a g 2 b d 9 b g 3 c e 8 d f 4 e g 4 e f 5 f g 6 100表示不連通 int weig...