diff --git a/README.md b/README.md index 14354ab..4a3deb5 100644 --- a/README.md +++ b/README.md @@ -65,7 +65,54 @@ struct list { ``` 代码: ``` - +int num2=0; + void Dijkstra(int v1,int v2){ + int dist[MAX],s[MAX],path[MAX];//s判断v1是否已经判断最短路径,path前驱 + int min,i,j,u,pre; + for(i=0;i",nm.adjust[pre].name); + pre=path[pre]; + } + printf("%s",nm.adjust[pre].name); + } + else printf("路径不存在!\n"); + } + } +} ##概要设计 1. 定义了一个结构体list,包含了地铁站点信息和邻接表。 diff --git a/城市地铁导航系统.c b/城市地铁导航系统.c index 84e1286..a60cec9 100644 --- a/城市地铁导航系统.c +++ b/城市地铁导航系统.c @@ -32,10 +32,76 @@ } void createlist() { edgenode *p; - //下面是肇嘉浜路的邻接表 - //... - //下面是上海体育馆的邻接表 - //... + p = (edgenode*)malloc(sizeof(edgenode)); + strcpy(p->a, "东安路"); + p->next = nm.adjust[0].firstnode; + nm.adjust[0].firstnode = p; + p = (edgenode*)malloc(sizeof(edgenode)); + strcpy(p->a, "嘉善路"); + p->next = nm.adjust[0].firstnode; + nm.adjust[0].firstnode = p; + p = (edgenode*)malloc(sizeof(edgenode)); + strcpy(p->a, "徐家汇"); + p->next = nm.adjust[0].firstnode; + nm.adjust[0].firstnode = p; + //下面是东安路的邻接表 + p = (edgenode*)malloc(sizeof(edgenode)); + strcpy(p->a, "肇嘉浜路"); + p->next = nm.adjust[1].firstnode; + nm.adjust[1].firstnode = p; + p = (edgenode*)malloc(sizeof(edgenode)); + strcpy(p->a, "上海体育场"); + p->next = nm.adjust[1].firstnode; + nm.adjust[1].firstnode = p; + p = (edgenode*)malloc(sizeof(edgenode)); + strcpy(p->a, "大木桥路"); + p->next = nm.adjust[1].firstnode; + nm.adjust[1].firstnode = p; + //下面是上海体育场的邻接表 + p = (edgenode*)malloc(sizeof(edgenode)); + strcpy(p->a, "东安路"); + p->next = nm.adjust[2].firstnode; + nm.adjust[2].firstnode = p; + p = (edgenode*)malloc(sizeof(edgenode)); + strcpy(p->a, "上海体育馆"); + p->next = nm.adjust[2].firstnode; + nm.adjust[2].firstnode = p; + //下面是嘉善路的邻接表 + p = (edgenode*)malloc(sizeof(edgenode)); + strcpy(p->a, "大木桥路"); + p->next = nm.adjust[3].firstnode; + nm.adjust[3].firstnode = p; + p = (edgenode*)malloc(sizeof(edgenode)); + strcpy(p->a, "肇嘉浜路"); + p->next = nm.adjust[3].firstnode; + nm.adjust[3].firstnode = p; + //下面是大木桥路 + p = (edgenode*)malloc(sizeof(edgenode)); + strcpy(p->a, "东安路"); + p->next = nm.adjust[4].firstnode; + nm.adjust[4].firstnode = p; + p = (edgenode*)malloc(sizeof(edgenode)); + strcpy(p->a, "嘉善路"); + p->next = nm.adjust[4].firstnode; + nm.adjust[4].firstnode = p; + //下面是徐家汇 + p = (edgenode*)malloc(sizeof(edgenode)); + strcpy(p->a, "肇嘉浜路"); + p->next = nm.adjust[5].firstnode; + nm.adjust[5].firstnode = p; + p = (edgenode*)malloc(sizeof(edgenode)); + strcpy(p->a, "上海体育馆"); + p->next = nm.adjust[5].firstnode; + nm.adjust[5].firstnode = p; + //下面是上海体育馆 + p = (edgenode*)malloc(sizeof(edgenode)); + strcpy(p->a, "徐家汇"); + p->next = nm.adjust[6].firstnode; + nm.adjust[6].firstnode = p; + p = (edgenode*)malloc(sizeof(edgenode)); + strcpy(p->a, "上海体育场"); + p->next = nm.adjust[5].firstnode; + nm.adjust[6].firstnode = p; } int cont[100][100];//邻接矩阵 void aaa(){