文章目录

  • 前言
  • 一、十字链表
    • 1.画邻接表
    • 2.增加弧节点的域
    • 3.自己指向自己
  • 二、邻接多重表
    • 1.画顶点
    • 2.画边
    • 3.自己指向自己

前言

近期一直在构建算法技能树的数据,借此机会,重新把数据结构与算法又温习了一遍,在看到十字链表与邻接多重表的画法时,十分的不理解,在C站找资料时,发现也看不懂,于是上B站,终于明白了十字链表与多重邻接表的画法。

一、十字链表

我们以下面的有向图为例来进行讲解


首先我们有几个定义要搞清楚:

如果:

则我们称V0是弧尾, v3是弧头

反之,如果:

则我们称v1是弧尾,v0是弧头。

顶点节点


firstin: 入边表头指针,指向该顶点的入边表中第一个节点
firstout: 出边表头指针,指向该顶点的出边表中第一个节点

弧节点


tailvex: 弧的尾节点
headvex: 弧的头节点

headlink: 指向和这条弧有相同头节点的点;同头
taillink: 指向和这条弧有相同尾节点的点; 同尾

用下面的图表示:

弧节点


以上重要概念都清楚后,下面我们开始画十字链表。

总的来说,分为三步:

1.画邻接表


接着,进入第二步

2.增加弧节点的域

我们将上图换成十字链表的格式

我们将其补齐,如下图:

然后,我们把这四个顶点标到图上去,如下:

接着,进入第三步

3.自己指向自己

第二步完成后,我们的图变成了现在这个样子:

接下来,我们就开始自己指自己的过程
从v0开始,将图中v0相连

接着v1,将图中所有v1相连

接着v2,v3,最终的结果如下:


至此,上图就是例子中有向图的十字链表。

二、邻接多重表

我们以下面的无向图为例

边表节点结构

ivex、jvex: 与某条边依附的两个顶点在顶点表中的下标

ilink: 指向依附顶点ivex的下一条边
jlink: 指向依附顶点jvex的下一条边

1.画顶点

上面的无向图告诉我们它有四个顶点和五条边,所以,我们我们先将四个顶点和五条边的边表结构画出来,由于是无向图,所以ivexjvex的顺序是可以互换的。

2.画边

3.自己指向自己

首先,我们从v0开始,v0的下标是0,将所有与v0有关的边连接起来。
其中,最后一个矩形,02之间的^表示空,因为再往下找没有与v0有关的边了,所以填入空

再连接所有与v1有关的边

接着是v2,v3

至此,上图就是例子中无向图的邻接多重表

最后,看完这篇文章还没懂的话可以点击一下链接观看视频:

1.十字链表画法
2.邻接多重表

十字链表与邻接多重表的画法相关推荐

  1. 图的链式存储结构解析(邻接表、逆邻接表、十字链表、邻接多重表)

    图的矩阵表示法比较消耗空间,需要花费$ n 2 n^2 n2$个单元存储边(弧).在边数较少的情况下比较浪费.我们这里来讨论图的链式存储结构. 图的链式结构主要有四类:邻接表.逆邻接表.十字链表.邻接 ...

  2. 构建复杂网络的几种方法(邻接矩阵,邻接表,十字链表,邻接多重表)

    目录 1. 数据结构 线性结构 非线性结构 2. 复杂网络的数组表示 3. 复杂网络的邻接表表示 4. 邻接矩阵与邻接表的比较 5. 复杂网络的其他表示方法 逆邻接表 十字链表 邻接多重表 前向星 链 ...

  3. 【数据结构】图的存储结构(邻接矩阵、邻接表、十字链表、邻接多重表)及实现(C语言)

    目录 1. 邻接矩阵表示法 1.1 图的邻接矩阵 1.2 创建有向网的邻接矩阵 2. 邻接表表示法 2.1 图的邻接表存储结构 2.2 创建有向图的邻接表 3. 十字链表表示法 3.1 图的十字链表存 ...

  4. 7.2图的存储结构(十字链表、邻接多重表、边集数组)

    思路: 有没有可能把邻接表和逆邻接表结合起来. 所以就产生了十字链表(Orthogonal List) 为此我们重新定义顶点表结点结构: data firstIn firstOut firstIn:第 ...

  5. (王道408考研数据结构)第六章图-第二节1:图的存储结构(邻接矩阵、邻接表、十字链表和邻接多重表)

    文章目录 一:邻接矩阵--适合存储稠密图 (1)邻接矩阵定义 (2)代码 二:邻接表 (1)邻接表定义 (2)代码 (3)邻接表和邻接矩阵对比 三:十字链表(用于有向图) 四:邻接多重表(用于优化无向 ...

  6. 十字链表、邻接多重表

    邻接矩阵.邻接表存储有向图 十字链表存储有向图 十字链表是有向图的一种链式存储结构.在十字链表中,对应于有向图中的每条弧有一个结点,对应于每个顶点也有一个结点. 弧结点中有5个域:尾域(tailvex ...

  7. 图的存储__十字链表法和邻接多重表法

    文章目录 一.十字链表法 概念 性能分析: 二.邻接多重表法 概念 复杂度分析 总结 一.十字链表法 概念 1.十字链表法只能存储有向图. 2.每个表中有一个顶点数组,每个顶点用两个指针,其中橙色指针 ...

  8. 59十字链表,邻接多重表,边集数组,佛洛依德的冰山理论

  9. 数据结构考研笔记(十五)——图的存储结构邻接矩阵、邻接表、十字链表、临界多重表的概念

    图的存储结构 1.邻接矩阵 1.1有向图 1.2无向图 2.邻接表法 2.1有向图边表 2.2无向图边表 3.十字链表 4.临界多重表 十字链表与临界多重表 1.邻接矩阵 邻接矩阵法结点数为n的图G ...

最新文章

  1. 如何成为顶尖管理者?
  2. Spring Singleton,请求,会话Bean和线程安全
  3. STL3-MyArray动态数组类模板实现
  4. 在arxiv上看到自己的投稿署了别人的名字是什么体验?
  5. factorymenu什么意思_宏基20lsquo;显示屏AUTO和MENU是什么意思,在什么位置_已解决 - 阿里巴巴生意经...
  6. 高等数学复习笔记(二)- 一元函数微分学的概念、计算以及几何应用
  7. easyui省市二级联动
  8. 小米路由pro php,完全拆解小米路由器Pro:无接口,预加硬盘无望
  9. CSS颜色代码对照表
  10. LumaQQ.NET For Visual Studio 2005 代码下载
  11. Gflags开源库使用--解析命令行参数
  12. csr驱动程序linux版,CSR8510蓝牙驱动下载
  13. 网站备案其实是服务器备案,网站备案指的是备案域名还是备案主机空间
  14. 求两个数的最大公约数(C++)
  15. 资深项目经理推荐的几款免费/开源项目管理工具
  16. Excel 透视图数据源无效的问题(PivotTable Data Source Not Valid)
  17. 7.3 有源滤波电路(1)
  18. js -- 打开新窗口(window.open)、关闭窗口(window.close)
  19. 史上最全Apidoc文档生成详解
  20. 穷人翻身远不是钱的事

热门文章

  1. cf登录游戏只显示服务器的字体,cf辅助灭天大神修复文件字体花样请求解决方法...
  2. 开心网存在重大安全隐患
  3. slf4j log4j logback关系详解和相关用法 【by Sinte-Beuve】
  4. java项目如何分工合作,JavaWeb基础 jsp+servlet分工合作的简单示例
  5. Clipper2中的术语和基本概念
  6. 如何快速通过对方微信好友验证!
  7. A - Heavy Transportation POJ - 1797
  8. Java ZIP压缩输入输出流
  9. 计算机是如何执行程序的
  10. mysql_check_MySQL中check的用法