邻接多重表画法(1)

本文介绍了邻接表在无向图中的局限性,提出邻接多重表来提高查找和删除边的效率,并通过实例展示了如何从邻接多重表构建无向图,旨在为理解邻接多重表的画法做准备。
摘要由CSDN通过智能技术生成

对于无向图的链式存储,常用邻接表,容易求得顶点和边的各种信息,但是在邻接表中求两个顶点之间是否存在边而对边进行删除等操作时,需要在边关联的两个顶点的边表进行逐一遍历,这样效率就非常低了,那么怎么解决这个问题呢,数据结构提供一种方法,即邻接多重表,接下来我将谈谈我对于邻接多重表的看法,正向画法将在后续讲解,这里我先把邻接多重表画法逆向一下

已知一无向图,求其邻接多重表(明天讲解)

已知一邻接多重表,求其对应无向图(今天讲解)

例如,给出一个邻接多重表如下

e0d50c0a02ff4a7a92d64a46938d0ab8.png

首先,我们按照每一个顶点开始出发,如果在边顶点的左边进入,则为左边数据-->右边数据;若在边顶点右边进入,则为右边数据-->左边数据(其实对于无向图都没关系这里,但是为了便于理解整个邻接多重表,故作此说明)例如,对于a有,0-->1和0-->3;对于b有,1-->0,1-->2和1-->4;同理将各顶点作为始点的边列下

d99a4b466e22485a96ed1a4b9364a807.png 

因为是无向图嘛,总会有重复的边,那么再去除重复边,得到无向图对应的所有边如下

e831f7d8609a4e3b9f45156af4b6818f.png

最后,根据所有的边,画出大致的无向图,如下

d2bb7341437d47a1a919f0d25350eec0.png 

讲这个的目的就是为了明天更好地理解邻接多重表的画法, 希望能帮助到大家。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对任意给定的图(顶点数不小于20,边数不少于30,图的类型可以是有向图、无向图、有向网、无向网),能够输入图的顶点和边(或弧)的信息,并存储到相应存储结构(邻接矩阵、邻接表、十字链表、邻接多重表,任选其中两种类型),对自己所创建的图完成以下操作: 对无向图求每个顶点的度,或对有向图求每个顶点的入度和出度(5分) 完成插入顶点和边(或弧)的功能(5分) 完成删除顶点和边(或弧)的功能(5分) 两种存储结构的转换(5分),如果其中一种存储结构为十字链表或邻接多重表则增加5分。 输出图的深度优先遍历序列或广度优先遍历序列(5分) 求图的深度优先或广度优先的生成树(或生成森林)(存储结构为孩子-兄弟链表),并对生成树进行遍历(15分) 判断图的连通性,输出连通分量的个数(5分) 判断图中是否存在环,无向图5分,有向图10分 给出顶点u和v,判断u到v是否存在路径(5分) 10、求顶点u到v的一条简单路径(10分) 11、求顶点u到v的所有简单路径(15分) 12、求顶点u到v的最短路径(10分) 13、求顶点u到其余各顶点的最短路径(15分) 14、求任两个顶点之间的最短路径(15分) 15、求最小生成树(15分) 16、对于有一个源点和一个汇点的有向网,求关键路径(20分) 编程环境可以是C、VC++、JAVA,每位同学从上述题目中选择100分的题目,注意,必须选择第1-6题。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值