无向图的邻接矩阵

#include

using namespace std;

const int MAXVEX=4;

const int INFINITY=5200;

struct graph    //建立图的邻接矩阵,分别是顶点,邻接矩阵,顶点数,边数

{

    int vertex[MAXVEX];

    int arc[MAXVEX][MAXVEX];

    int numver,numedgs;

}MGraph;

void CreateGraph(graph *p)  //建立图

{

    cout<<"请输入图的顶点数与边数:"<

    cin>>p->numver>>p->numedgs;  /*输入顶点数,边数*/

    int i=0;

    for(int a=0;a

    {

        for(int b=0;b

            p->arc[a][b]=INFINITY;

    }

    while(inumver)        /*输入顶点*/

    {

        cout<<"请输入顶点"<

        cin>>p->vertex[i];

        i++;

    }

    i=1;

    while(i<=p->numedgs)  /*将图的边放入邻接矩阵*/

    {

        cout<<"请输入该边所依附的邻接点:"<

        int a,b,w;

        cin>>a>>b;

        cout<<"请输入该边的权重"<

        cin>>w;

        p->arc[a-1][b-1]=w;

        p->arc[b-1][a-1]=p->arc[a-1][b-1]; /*因为是无向图,所以邻接矩阵是对称矩阵*/

        i++;

    }

}

int main()

{

    graph *p=new graph;

    CreateGraph(p);

    for(int i=0;inumver;i++)      /*循环,输出邻接矩阵*/

    {

        for(int j=0;jnumver;j++)

        {

            if(j+1==p->numver)

                cout<arc[i][j]<

            else

                cout<arc[i][j]<<'\t';

        }

    }

    return 0;

}

你可能感兴趣的:(无向图的邻接矩阵)