数据结构中图结构的最小生成树算法(普里姆算法)
最近有很久都没有露头了,主要是有很多的作业,而且马上就到了期末考试了,所以我没有什么时间来这里发布文章了。今天呢,把我以前写的图结构再次搬了上来。这次的图结构添加了广度优先遍历,和最小生成树的普里姆算法。现在我就把我程序中的普里姆算法贴出来,供大家参考。
- /*----------------------------------------------------------------------------
- 蒋轶民制作:E-mail:jiangcaiyang123@163.com
- ------------------------------------------------------------------------------
- 文件名:JGraph_MiniSpanTree.h
- ------------------------------------------------------------------------------
- 作用:最小生成树的生成
- ------------------------------------------------------------------------------
- 调用规范:无
- /*--------------------------------------------------------------------------*/
- // 条件编译
- #ifndef _JGRAPH_MINISPANTREE_H_
- #define _JGRAPH_MINISPANTREE_H_
- /*--------------------------------------------------------------------------*/
- // 返回顶点在图中的位置
- template <typename CustomType>
- int JMatrixGraph<CustomType>::LocateVex( CustomType u )
- {
- int i;
- for ( i = 0; i < vexnum; i++ )
- {
- if ( vexs[i] == u )
- return i;
- }
- return -1;
- }
- /*--------------------------------------------------------------------------*/
- // 输出最小边的下标
- template <typename CustomType>
- int JMatrixGraph<CustomType>::minimum( CloseEdge<CustomType>* closedge )
- {
- int i, track_i = -1;
- VRType lowestcost = INFINITY;
- for ( i = 0; i < vexnum; i++ )
- {
- if ( lowestcost > closedge[i].lowcost && closedge[i].lowcost > 0 )
- {
- lowestcost = closedge[i].lowcost;
- track_i = i;
- }