数据结构之图的矩阵法存储

上个博客讲过了图的基本概念后,我们来实现图的存储之一————有向图的矩阵法存储。
首先我们来看以下有向带权图:
在这里插入图片描述
这样的图适合用矩阵法来存储。
分析一下我们需要的结构:二维数组,表示顶点的字符串,存储顶点的容器,表示定点数量,表述边的数量,
边的指向向用向量坐标的形式,也就是坐标法表示(A,B)和(B,A)在二维数组中表示的概念是不一样的是一个道理。
所以我们来动手操作一下:

第一步:我先准备表示顶点的字符串和边的类型表示

typedef char VertexType[4];
typedef int VRType;

起别名,更清晰
第二步 将矩阵法表示图封装成结构体:
也就是边的数量,定点数量,存储顶点,存储边向和权值的矩阵;

typedef struct graph {
   
	int arcnum;//边数
	int vernum;//顶点数
	VertexType vetex[10]; //存储顶点
	VRType martrix[10][10];//存储权值
}GRA,*LPGRA;

然后就是表的创建,创建表,我们需要知道有多少个顶点,边,让用户去输入,还有边的信息,这样才能创建并存储。
我们在二维数组里面存储需要知道顶点位置,所以我们要利用一维数组的顶点数组里面找到其对应的位置,所以需要一个函数专门比较并查找。
下面是我实现的代码部分:

int searchpos(LPGRA G,VertexType x) {
   //查找顶点坐标
	for (int i =</
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值