《数据结构》图floyd算法示例-大家一定要看

图的只操作复杂,但很在意义和意思。这里根据课本精华,实现一个图的最短路径算法,请参考。

准备计算课本P172,图6-13。如下:

《数据结构》图floyd算法示例-大家一定要看_第1张图片

#include   
#include   
#include      //引入输入输出格式头文件
using namespace std;  
const int Maxsize = 10;  

class MGraph  
{  
public:  
    MGraph(string a,int n,int e);  
    void Floyd();  
    void print();  
private:  
    string vertex[Maxsize];  
    int arc[Maxsize][Maxsize];  
    int vertexNum,arcNum;  
    int dist[Maxsize][Maxsize];  
   string path[Maxsize][Maxsize];  
};  

MGraph:: MGraph(string a,int n,int e)  
{   int i,j,k,info;  
    vertexNum = n;  
    arcNum = e;  
    for(i=0;i>i>>j;  
        while(i>=vertexNum && j>=vertexNum)  
        {   cout<<"请重新输入"<>i>>j;  
        }  
        cout<<"请输入边的权值"<>info;  
        while(info < 0)  
        {   cout<<"请重新输入"<>info;  
        }  
        arc[i][j]=info;  
    }  
  }  
void MGraph::Floyd()  
{   int i,j,k;  
    for(i=0;i>ch1>>ch2;        //输入要判定是的顶点,请输入顶点字符。       
    for(i=0;i>n>>e;
   cout<<"请输入依次输入各个顶点字符串:"<>ch;
    MGraph m(ch,n,e);  
    m.Floyd();  
    m.print();  
    return 0;  
}  

程序运行时界面如下:

《数据结构》图floyd算法示例-大家一定要看_第2张图片

大家可以输入其它图形进行验证。祝大家成功。


你可能感兴趣的:(《数据结构》13级)