数据结构——邻接矩阵表示图(c语言)

本文介绍了如何使用C语言通过邻接矩阵表示无向图,强调了邻接矩阵的特性,如对称性、度的计算,并指出在存储无向图时可以只存上三角或下三角以节省空间。此外,还概述了建立邻接矩阵图的四个步骤:建立矩阵、初始化、定义边及插入边,最后提醒读者可扩展处理顶点数据。
摘要由CSDN通过智能技术生成

邻接矩阵(Adjacency Matrix)是表示顶点之间相邻关系的矩阵。设G=(V,E)是一个图,其中V={v1,v2,…,vn} [1] 。G的邻接矩阵是一个具有下列性质的n阶方阵:
①对无向图而言,邻接矩阵一定是对称的,而且主对角线一定为零(在此仅讨论无向简单图),副对角线不一定为0,有向图则不一定如此。
②在无向图中,任一顶点i的度为第i列(或第i行)所有非零元素的个数,在有向图中顶点i的出度为第i行所有非零元素的个数,而入度为第i列所有非零元素的个数。
③用邻接矩阵法表示图共需要n^2个空间,由于无向图的邻接矩阵一定具有对称关系,所以扣除对角线为零外,仅需要存储上三角形或下三角形的数据即可,因此仅需要n(n-1)/2个空间。

关于图的实现方法,除了邻接矩阵还有邻接表等方法,会在后续博客中写出
邻接矩阵(即数组)来实现图难度不高,步骤分析如下:


第一步:
建立邻接矩阵

struct GNode{
   
	int Nv;//图的顶点数
	int Ne;//图的边数
	int G[MaxVertexNum][MaxVertexNum];//二维数组
}; 
typedef struct GNode *PtrToGNode;//此为指向GNode的指针
typedef PtrToGNode MGraph;//定义为MGraph

第二步:
初始化图

typedef int Vertex;
MGraph CreateGraph
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值