prim algorithm
来源:互联网 发布:js获取cookie 编辑:程序博客网 时间:2024/06/06 12:20
/*
prim algorithm
author:wuzuquan
last_modify:2008-1-10
*/
#include<stdio.h>
#include<assert.h>
#include "min_heapsort.h"
#define VNUM 9
#define NIL 100
extern int heap_size;
extern int length=VNUM;
typedef struct
{
int v;
int w;
}edge;
/*紧缩邻接表实现赋权无向图*/
edge list[29]={ {1,4},{7,8},
{0,4},{2,8},{7,11},
{1,8},{3,7},{5,4},{8,2},
{2,7},{4,9},{5,14},
{3,9},{5,10},
{2,4},{3,14},{4,10},{6,2},
{5,2},{7,1},{8,6},
{0,8},{1,11},{6,1},{8,7},
{2,2},{6,6},{7,7}};
int head[VNUM+1]={0,2,5,9,12,14,18,21,25,28};
void mst_prim(int *parent, int *key, int source)
{
int u=0;
int Q[VNUM+1];/*最小优先级队列*/
assert(parent!=NULL && key!=NULL);/*检查内存是否可用*/
Q[0]=INT_MAX;
for (u; u<VNUM; u++)
{/*initialize,下标从1开始,0位置的元素不使用*/
key[u]=INT_MAX;
parent[u]=NIL;
Q[u+1]=u;
}
key[source]=0;
build_min_heap(Q);/*对每一个非叶子结点都调用一次min_heaplfy*/
while (heap_size>0)
{
int v=0;
u=heap_extract_min(Q);/*将最小的关键字出列*/
for (v=head[u]; v<head[u+1]; v++)
{
char vertex=list[v].v;
if (vertex >= minimum(Q) && list[v].w < key[vertex])
{
parent[vertex]=u;
key[vertex]=list[v].w;
}
}
}
}
void printkey(int *parent, int *key)
{
int i=0;
for (i=1; i<VNUM; i++)
{
printf("%c--%c: %d/n",i+'a',parent[i]+'a',key[i]);
}
}
int main()
{
int key[VNUM];
int parent[VNUM+1];/*父结点数组*/
mst_prim(parent,key,0);
printkey(parent,key);
return 0;
}
- prim algorithm
- Prim & Kruskal Algorithm
- 普林演算法 (Prim's algorithm)
- Prim's minimum spanning tree algorithm
- POJ 1789 Truck History (Prim Algorithm)
- POJ 1258 Agri-Net(Prim Algorithm)
- POJ 3026 Borg Maze (Prim Algorithm)
- The Proof of Correctness of Prim's Algorithm
- Minimum Spanning Tree (MST) -- Prim's Algorithm (c++实现)
- Minimum Spanning Trees - Prim’s algorithm & Single-Source Shortest Paths - Dijkstra’s algorithm
- 贪心算法——普林姆算法(Greedy Algorithm-Prim's Algorithm)
- prim
- Prim
- Prim
- prim
- Prim
- prim
- prim
- Improve performace: check your loops
- 为web工程添加struts、hibernate和spring支持(eclipse)
- ProE 应用技巧30则
- Bugzilla安装配置(windows平台,CGI访问)
- const type *var, type const * var, type *const var 和 const type *const var
- prim algorithm
- Insus.NET:七道最经典的asp.net页面传值题
- PRO/E中打开Autocad实体图
- Subversion和xplanner使用统一用户名和密码
- Proe和ug的转换方法
- min_heapsort.h
- 小談IEnumerable和IEnumerator接口
- AutoCAD图导入photoshop的方法
- CAD快捷命令