首页 > 代码库 > 图的几种存储方式

图的几种存储方式

1,     邻接矩阵:

struct MGraph
 {
     int ver[Max];
     int arc[Max][Max];
     int vers;
     int Eges;
};

int Locate(MGraph G,int x)
{
    for(int i=1;;i++)
        if(G.ver[i]==x)  return i;
}

void CreateUDN_MG(MGraph &G)
{
    cin>>G.vers>>G.Eges;
    for(int i=1;i<=G.vers;i++)
       cin>>G.ver[i];
    for(int i=1;i<=G.vers;i++)
        for(int j=1;j<=G.vers;j++)
           G.arc[i][j]=-1;
    for(int k=0;k<G.Eges;k++)
    {
        int v1,v2,w;
        cin>>v1>>v2>>w;
        int i=Locate(G,v1);
        int j=Locate(G,v2);
        G.arc[i][j]=w;
    }


数据:

6 10
1 2 3 4 5 6
1 2 5
1 4 7
6 1 3
3 1 8
2 3 4
4 3 5
4 6 6
5 4 5
6 5 1
3 6 9



图的几种存储方式