path[i] 为  原点到i 的最短路径中 i的前驱结点。

if(dis[j]>dis[u]+cost[u][j])

{

  dis[j]=dis[u]+cost[u][j];

  path[j]=u;

}

最后while  或 递归输出即可