#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;
}
//第四步骤,单边插入
void InsertGraph(Graph G,Edge E)
{
G->GL[(E->v1)-1][(E->v2)-1]=E->weight;
//如果是无向图,还需以下的步骤
G->GL[(E->v2)-1][(E->v1)-1]=E->weight;
printf("插入成功\n");
}
//第五步骤,建造一个完整的图
Graph BuildGraph(int Nv,int Ne)
{
int i;
Graph G;//--------------------这步绑在起
G&#
c语言实现一个邻接矩阵(动态数组)+(默写版)
最新推荐文章于 2023-05-11 00:27:15 发布
本文介绍了如何使用C语言通过动态数组来实现邻接矩阵,特别强调节点编号应从0开始,严格按照节点数量进行编号,而非随意指定。
摘要由CSDN通过智能技术生成