//点的数量privateint vertexs ={{0,5,7, N, N, N,2},{5,0, N,9, N, N,3},{7, N,0, N,8, N, N},{N,9, N,0, N,4, N},{N, N,8, N,0,5,4},{N, N, N,4,5,0,6},{2,3, N, N,4,6,0}};//图的矩阵实现,初始化时候,两点不连通无穷大privateint[][] edges;//存储到目标结点需要经过最近的一个点privateint[][] pre pre ={{0,0,0,0,0,0,0},{1,1,1,1,1,1,1},{2,2,2,2,2,2,2},{3,3,3,3,3,3,3},{4,4,4,4,4,4,4},{5,5,5,5,5,5,5},{6,6,6,6,6,6,6}};publicvoidfloyd(){//第一层就是遍历所有点为中间点,后面两层就是,遍历所有点,看看能否通过第一层的点缩短到目标点的距离for(int k =0; k < vertexs; k++){for(int i =0; i < vertexs; i++){for(int j =0; j < vertexs; j++){//通过k这个中间点到目标点的距离int len = edge[i][k]+ edge[k][j];//通过中间点的距离小,我们就使用中间点的距离if(len < edge[i][j]){//更新最短距离
edge[i][j]= len;//更新需要通过k点才能到目标结点
pre[i][j]= k;}}}}}