FLOYD算法之简单版

原创 2006年06月07日 18:23:00

所谓简单版,是功能还不完全,只是一个雏形,呵呵,不过也得贴出来, 我这里内容太少了~!!

#include<iostream.h>
#include<cstdlib>
#define vex 3//定义结点的个数
#define MAX 32767//设定一个极大值
typedef struct{
 char p[128];
}paths;
void Ppath1(int i,int j,paths path[vex][vex]){
 if(i!=j){
  int n=0;
 path[i][j].p[n++]=i+65;
 path[i][j].p[n++]=j+65;
 path[i][j].p[n]='/0';
 }
}
void Ppath(int i,int j,int k,paths path[vex][vex]){
 if(i!=j){
 int n=0;
  path[i][j].p[n++]=i+65;
 path[i][j].p[n++]=k+65;
 path[i][j].p[n++]=j+65;
 path[i][j].p[n]='/0';}
}
/*
0 4 11
6 0 2
3 -1 0
*/
void floyd(paths path[vex][vex],int v[vex][vex]){
 for(int i=0;i<vex;i++)
  for(int j=0;j<vex;j++)
      Ppath1(i,j,path);
 for(int k=0;k<vex;k++){
  for(i=0;i<vex;i++)
   for(int j=0;j<vex;j++)
    if(v[i][j]>v[i][k]+v[k][j]){
     v[i][j]=v[i][k]+v[k][j];
     Ppath(i,j,k,path);
    }
 }
}
void main(){
 int v[vex][vex]={{0,4,11},{6,0,2},{3,MAX,0}},i,j,k;
 paths path[vex][vex];
 cout<<"邻接矩阵如下:"<<endl;
 for(i=0;i<vex;i++){
  for(j=0;j<vex;j++)
   cout<<v[i][j]<<"  ";
  cout<<endl;
 }
    floyd(path,v);
   cout<<"最短路径如下:"<<endl;
    for(i=0;i<vex;i++){
      for(j=0;j<vex;j++)
         cout<<v[i][j]<<"  ";
      cout<<endl;
 }
 cout<<"具体路径如下:"<<endl;
 for(i=0;i<vex;i++)
  for(j=0;j<vex;j++)
   if(i!=j)
   cout<<i<<"  "<<j<<"   "<<path[i][j].p<<endl;
}

原来写进来的代码有问题,本来调试过了,但是弄进来的时候搞错了,看来没有人来关注啊,可怜的博客!!!

poj_1125 Floyd算法简单应用

题目很简单,
  • yeruby
  • yeruby
  • 2014年07月25日 12:52
  • 618

acm_floyd任意两点的最短路(最简单无脑的最短路算法)

算法作用求给定图中任意两点间的最短距离时间复杂度O(v^3) V是顶点个数代码实现(3个for)g是用邻接矩阵传入的图, 如果两点之间没有路径, 设成inf, 否则设成边权, n是顶点个数, 顶点编...
  • fkjslee
  • fkjslee
  • 2016年07月24日 22:14
  • 689

Floyd算法——C++实现版

// Floyd.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include #include #define MAX_VALUE 1000 #de...

【连载】Floyd求最短路径算法设计 — Java版

Floyd求最短路径算法设计废话不多说,直接上代码。算法实现 Floyd.java package zychaowill.datastructure.graph.algo.impl;import ja...

Floyd算法(未优化版)

其实整个算法的思想就是动态规划,我觉得这个动态规划的过程还是得自己去划一划,下面最重要的代码就是那一段递推的那一段,递推是动态规划的核心,其实理解到了一个问题的变化,自己能推出它的递归方程了你就可以轻...

floyd最短路径算法C#版

本文主要根据floyd算法生成最短路径(包含最短路径值和最短路径经过的所有节点) 首先在数据库中存储创建点表,点的字段包括ID,经度,纬度;线表,线的字段包括IDE(即点的唯一标示值),线的两个端点...

最短路径Dijkstar算法和Floyd算法详解(c语言版)

用这两个算法做了半年多的题了,刚开始学的时候以为很懂了,直到今天数据结构课上,我才真正的明白了,下面我来详解这两个算法。 先说说Dijkstra吧,这种算法只能求单源最短路径,那么什么是单源最短...

最短路径Dijkstar算法和Floyd算法详解(c语言版)

用这两个算法做了半年多的题了,刚开始学的时候以为很懂了,直到今天数据结构课上,我才真正的明白了,下面我来详解这两个算法。 先说说Dijkstra吧,这种算法只能求单源最短路径,那么什么是单源最短路径呢...

最短路径Dijkstar算法和Floyd算法详解(c语言版)

用这两个算法做了半年多的题了,刚开始学的时候以为很懂了,直到今天数据结构课上,我才真正的明白了,下面我来详解这两个算法。 先说说Dijkstra吧,这种算法只能求单源最短路径,那么什么是单源最短路径...

Floyd最短路算法

  • 2015年12月15日 19:28
  • 174KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:FLOYD算法之简单版
举报原因:
原因补充:

(最多只允许输入30个字)