[数据结构]求两点之间的最短路径 解题报告

Problem Description

最短路径问题是经典图论问题之一。从工程意义上讲,最短路径问题是对大量工程问题的直观抽象。
最典型的例子是在地图上寻找最短驾车路径。


short

寻找从A到D的最短路径。


测试输入

5,7
A,B,C,E,D
<0,3,30>,<0,1,10>,<0,2,20>,<1,3,10>,<1,2,5>,<2,4,30>,<3,4,20>

测试输出

A-B-E-D

AcCode

//
//  main.cpp
//  求两点之间的最短路径
//
//  Created by jetviper on 2017/3/26.
//  Copyright © 2017年 jetviper. All rights reserved.
//

#include 
#include
#include
#define INFINITY 99999
int n,b,k,t;
struct{
    char name[10];
    int bnum;
    int linkto[5000];
    int value[5000];
}node[600];
char temp[5000],road[5000][5000];
int D[5000];
void scanfb(char *temp,int f,int *get){
    char s1[20],s2[20],s3[20];
    int p,s,c;
    int len = strlen(temp);
    if(temp[f]=='<'){
        p=0;
        for(int j=f+1;jD[now]+node[now].value[i]){
            char tmpstr[500];
            strcpy(tmpstr,road[now]);
            strcat(tmpstr,node[now].name);
            strcat(tmpstr,"-");
            strcpy(road[node[now].linkto[i]],tmpstr);
            D[node[now].linkto[i]] = D[now] + node[now].value[i];
            list[count++] = node[now].linkto[i];
        }
    }
    for(int i=0;i

你可能感兴趣的:([数据结构]求两点之间的最短路径 解题报告)