数据结构学习--图(三)四种存储结构

一.邻接矩阵
1.定义:用一个一维数组存放图中所有顶点数据;用一个二维数组存放顶点间关系(边或弧)的数据,这个二维数组称为邻接矩阵。邻接矩阵又分为有向图邻接矩阵和无向图邻接矩阵。
2.存储结构:

#define MaxVertexNum l00 //最大顶点数,应由用户定义
typedef char VertexType; //顶点类型应由用户定义
typedef int EdgeType; //边上的权值类型应由用户定义
typedef struct{
VextexType vexs[MaxVertexNum] //顶点表
EdeType edges[MaxVertexNum][MaxVertexNum];//邻接矩阵,可看作边表
int n,e; //图中当前的顶点数和边数
}MGragh;

3.代码实现输入:

int i,j,k,w;
scanf("%d%d",&G->n,&G->e); //输入顶点数和边数
for(i = 0;i < G->n;i++) //读入顶点信息,建立顶点表
{
    G->vexs[i]=getchar();
}
for(i = 0;i < G->n;i++)
{
    for(j = 0;j < G->n;j++)
    {
        G->edges[i][j] = 0; //邻接矩阵初始化
    }
}
for(k = 0;k < G->e;k++)
{//读入e条边,建立邻接矩阵
    scanf("%d%d%d",&i,&j,&w); //输入边(v i ,v j )上的权w
    G->edges[i][j]=w;
}
}//CreateMGraph
上一篇:神经网络中最基本的三个概念:Epoch, Batch, Iteration


下一篇:Shortest Path [3](25分)