【图的存储】邻接多重表

目录

前言

一、什么是邻接多重表?

二、邻接多重表的构成

1.顶点集+边集

2.顶点和边的连接

 总结


前言

  无论是什么程序都要和数据打交道,一个好的程序员会选择更优的数据结构来更好的解决问题,因此数据结构的重要性不言而喻。数据结构的学习本质上是让我们能见到很多前辈在解决一些要求时间和空间的难点问题上设计出的一系列解决方法,我们可以在今后借鉴这些方法,也可以根据这些方法在遇到具体的新问题时提出自己的解决方法。(所以各种定义等字眼就不用过度深究啦,每个人的表达方式不一样而已),在此以下的所有代码都是仅供参考,并不是唯一的答案,只要逻辑上能行的通,写出来的代码能达到相同的结果,并且在复杂度上差不多,就行了。


一、什么是邻接多重表?

邻接多重表是无向图的一种存储结构。如果在无向图中我们的侧重点在顶点上,那么使用邻接表是很合适的,然而之前我们讨论过,当我们的侧重点在边上,也就是需要对边增删查改的时候,用邻接多重表就更加合适了

二、邻接多重表的构成

1.顶点集+边集

与十字链表一样,邻接多重表是由顶点集合和边集合构成的。但又与十字链表不同的是,邻接多重表是无向图的存储结构吗,而十字链表是针对有向图的。因为不考虑边的方向,所以和十字链表相比较,顶点结点只需要一个指针域指向所连接的边结点即可

 顶点集VexNode由顶点的数据域data和指向顶点所连接的边节点的指针firstEdge构成

//顶点集
typedef struct VexNode
{
    //顶点信息
    char data;
    //指向顶点所连接的边节点链表
    ArcNode* firstEdge;
}VexNode;

而在边集中对于一条边来说,

  • 23
    点赞
  • 68
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 10
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小白还在写代码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值