logo资料库

Dijkstra算法_C语言实现代码.doc

第1页 / 共2页
第2页 / 共2页
资料共2页,全文预览结束
Dijkstra 算法 C 语言实现 #include #include 2008-08-26 12:07 #define INFINITY 1000000000 #define MAX_NODES 1024 int n,dist[MAX_NODES][MAX_NODES]; //最大距离 //最大节点数 //dist[i][j]表示从 i 到 j 的距离 void shortest_path(int s, int t, int path[]) { struct state { int predecessor; //前驱节点 int length; enum {permanent, tentative} label; //到起始点的距离 }state[MAX_NODES]; int i,k,min; struct state * p; for(p=&state[0]; p<&state[n]; p++) { p->predecessor = -1; p->length = INFINITY; p->label = tentative; } state[t].length = 0; state[t].label = permanent; k = t; do { //k 是当前工作节点 for(i=0; i
k=0; min=INFINITY; for(i=0; i=0); }
分享到:
收藏