#include<stdio.h>
#include<stdlib.h>
//--------------------------------------以下是邻接矩阵部分------------------------------
//第一步骤,边的定义
struct Enode
{
int v1,v2;
int weight;
};
typedef struct Enode* Edge;
//第二步骤,图的定义
struct Gnode
{
int Nv,Ne;
int** GL;
//定义一个二维数组
};
typedef struct Gnode* Graph;
//第三步骤,图的初始化
Graph CreateGraph(int Nv)
{
Graph G;
G=(Graph)malloc(sizeof(struct Gnode));
G->Nv=Nv;
G->Ne=0;
//动态分配一个二维数组
G->GL=(int **)malloc(sizeof(int*)*Nv);
int i,j,k;
for(i=0;i<Nv;i++)
{
G->GL[i]=(int *)malloc(sizeof(int)*Nv);
}
for(j=0;j<Nv;j++)
{ for(k=0;k<Nv;k++)
G->GL[k][j]=0;
}
return G;
}
//第四步骤,单边插入,节点的编号从0开始并且要按总数编
void InsertGraph(Graph G,Edge E)
{
G->GL[(E->v1)][(E->v2)]=E->weight;
//如果是无向图,还需以下的步骤
G->GL[(E->v2)][(E->v1)]=E->weight;
printf("插入成功\n");
}
//第五步骤&#x
C语言实现图的邻接矩阵的广度遍历
最新推荐文章于 2024-05-29 09:25:06 发布