/*输出最短路径*/ void Ppath( int path[][MAXV], int i, int j ) { int k = path[i][j]; if( k == -1 ) return; Ppath( path, i, k ); printf( "%d ", k ); Ppath( path, k, j ); }
void Ppath(int path[][100],int i2,int j2) { int k2; k2=path[i2][j2]; if(k2==-1) { return; } Ppath(path,i2,k2); printf("%c",str[tmp][k2]); tmp = k2; Ppath(path,k2,j2); }
void Dispath(int A[][100],int path[][100],int n) { Ppath(path,0,n-1); printf("%c",str[tmp][n-1]); }
void printPath(MGraph* G, int v) { for (int i = 0; i < G->n; i++) { if (s[i] == 1) { printf("Shortest path distance from %d to %d is %d, \tthe shortest path: ", v, i, d[i]); printf("%d, ", v); Ppath(v, i); printf("%d\n", i); } } }
void printPath(MGraph* G) { for (int i = 0; i < G->n; i++) for (int j = 0; j < G->n; j++) if (d[i][j] == INFI) printf("There is no path between %d and %d\n", i, j); else { printf("The shortest path distance from %d to %d is %d, " "A shortest path: ", i, j, d[i][j]); printf("%d, ", i); Ppath(i, j); printf("%d\n", j); } }
void Dispath( int A[][MAXV], int path[][MAXV], int n ) { int i, j; for( i = 0; i < n; i ++ ) for( j = 0; j < n; j ++ ) { if( A[i][j] == INF ) { if( i != j ) printf( "从%d到%d之间没有路径\n", i, j ); } printf( "从%d到%d的最短路径为:", i, j ); printf( "%d ", i ); Ppath( path, i, j ); printf( "%d ", j ); printf( "路径最短长度为%d\n", A[i][j] ); } }
void Ppath(int v, int i) { if (path[i] == v) return; Ppath(v, path[i]); printf("%d, ", path[i]); }
void Ppath(int i, int j) { if (path[i][j] == -1) return; Ppath(i, path[i][j]); printf("%d, ", path[i][j]); Ppath(path[i][j], j); }