图--邻接矩阵

邮差的信 提交于 2020-02-21 06:58:59

邻接矩阵

图的学习我仍然有许多不懂的地方,所有我先聊聊我比较了解的邻接矩阵。

图的邻接矩阵的存储方式是用两个数组来表示图。
一个一维数组存储图中顶点信息,一个二维数组存储图中的边的信息。

若图G有n个顶点,那这个邻接矩阵就是一个n*n的方阵:

当i=j时,G[i] [j]=0;
当i=a;j=b时,G[i][j]=c;
反之,G[i][j]=无限大(通常取999999999)

其中,c表示a地到b地的权值。

邻接矩阵的的存储结构:

#define INFINITY 999999999;
typedef struct
{
    int v[1000];
    int arc[1000][1000];
    int n,m;//图中的顶点数和边数
}MGraph;

邻接矩阵可以作用于最小生成树的prim算法。

int i,j;
            for(i=0; i<b; i++)
            {
                for(j=0; j<b; j++)
                {
                    if(i==j)
                        G[i][j]=0;
                    else
                        G[i][j]=999999999;
                }
            }
            for(i=0; i<a; i++)
            {
                int n,m,h;
                scanf("%d%d%d",&n,&m,&h);
                G[n-1][m-1]=h;
            }

以上是邻接矩阵作用在最小生成树的prim算法的处理。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!