学校超市选址问题(带权有向图的中心点)----C 语言
来源:百度知道 编辑:UC知道 时间:2024/06/05 01:43:51
这是最短路径问题
首先有向赋权图得用邻接表来表示。
不知道邻接表是怎么建的,所以随便鼓捣了一下。。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define alloc(type) (type*)malloc(sizeof(type))
#define MAX_NUM 3.14E38
#define TRUE 1
#define FALSE 0
#define NODE_NUM 8
struct adj_list{
int index;
char name[10];
float len;
struct adj_list *next;
};
typedef struct adj_list Node;
//node[]为起始节点数组
int dijkstra(Node node[],int size,int first,float distance[],int previous[]){
//初始化数组
int *isused=new int[size];
for(int i=0;i<size;i++){
distance[i]=MAX_NUM;
isused[i]=FALSE;
previous[i]=-1;
}
//初始起始节点和邻接节点间的距离
Node *pos=node[firs