图的邻接表表示法

  图的邻接表表示法类似于树的孩子链表表示法。对于图G中的每个顶点v i ,该方法把所有邻接于v i 的顶点v j 链成一个带头

结点的单链表,这个单链表就称为顶点v i 的邻接表(Adjacency List)。

1. 邻接表的结点结构

(1)表结点结构

┌────┬───┐ 
│adjvex │next │ 
└────┴───┘ 
  邻接表中每个表结点均有两个域:

  ① 邻接点域adjvex

   存放与vi相邻接的顶点v j 的序号j。

  ② 链域next

   将邻接表的所有表结点链在一起。

注意:

  若要表示边上的信息(如权值),则在表结点中还应增加一个数据域。

(2)头结点结构

┌────┬─────┐ 
│vertex │firstedge │ 
└────┴─────┘ 
  顶点v i 邻接表的头结点包含两个域:

  ① 顶点域vertex

   存放顶点v i 的信息

  ② 指针域firstedge

   v i 的邻接表的头指针。

注意:

  ① 为了便于随机访问任一顶点的邻接表,将所有头结点顺序存储在一个向量中就构成了图的邻接表表示。

  ② 有时希望增加对图的顶点数及边数等属性的描述,可将邻接表和这些属性放在一起来描述图的存储结构。

2.无向图的邻接表

  对于无向图,v i 的邻接表中每个表结点都对应于与v i 相关联的一条边。因此,将邻接表的表头向量称为顶点表。将无向图的

邻接表称为边表。

【例】对于无向图G 5 ,其邻接表表示如下面所示,其中顶点v 0 的边表上三个表结点中的顶点序号分别为1、2和3,它们分别表示

关联于v 0 的三条边(v 0 ,v 1 ),(v 0 ,v 2 )和(v 0 ,v 3 )。

注意:

n个顶点e条边的无向图的邻接表表示中有n个顶点表结点和2e个边表结点。

3.有向图的邻接表

  对于有向图,v i 的邻接表中每个表结点都对应于以v i 为始点射出的一条边。因此,将有向图的邻接表称为出边表。

【例】有向图G 6 的邻接表表示如下面(a)图所示,其中顶点v 1 的邻接表上两个表结点中的顶点序号分别为0和4,它们分别表示从

v 1 射出的两条边(简称为v 1 的出边):<v 1 ,v 0 >和<v 1 ,v 4 >。

注意:

n个顶点e条边的有向图,它的邻接表表示中有n个顶点表结点和e个边表结点。

4.有向图的逆邻接表

在有向图中,为图中每个顶点v i 建立一个入边表的方法称逆邻接表表示法。

入边表中的每个表结点均对应一条以v i 为终点(即射入v i )的边。

【例】G 6 的逆邻表如上面(b)图所示,其中v 0 的人边表上两个表结点1和3分别表示射人v 0 的两条边(简称为v 0 的入边):<v

1 ,v 0 >和<v 3 ,v 0 >。

注意:

  n个顶点e条边的有向图,它的接表表示中有n个顶点表结点和e个边表结点。

转载:http://www.cnblogs.com/lxf90/articles/2012020.html

转载于:https://www.cnblogs.com/Wurq/p/5155576.html

【转载】邻接表表示法相关推荐

  1. 有向图的邻接表表示法

    图的邻接表表示法类似于树的孩子链表表示法.对于图G中的每个顶点vi,该方法把所有邻接于vi的顶点vj链成一个带头结点的单链表,这个单链表就称为顶点vi的邻接表(Adjacency List). 1. ...

  2. 《数据结构》-图的邻接表表示法(四)

    邻接表表示法(链式) 存储定义: 顶点:按编号顺序将顶点数据存储在一维数组中 关联同一顶点的边(以顶点为尾的弧):用线性链表存储 无向图的邻接表 例如,如下无向图 则它的邻接表为 无向图邻接表的特点: ...

  3. C语言邻接表表示法创建无向图并输出

    C语言邻接表表示法创建无向图并输出 邻接表是图的一种链式存储结构,对图的每个顶点建立一个单链表,单链表第一个结点存放顶点信息,其余存放有关边信息. 邻接表由表头结点表和边表组成. 邻接表存储结构 #i ...

  4. 无向图的邻接表表示法 及 深搜遍历DFS

    昨天有小朋友求助关于图的邻接表示及深搜,记得一年前的我学数据结构也搞的乱七八糟的.我就顺便学下吧,网上的代码都好规范的感觉,读那些代码的能力不够,自己把那些代码简化了下. 非常感谢那些小朋友给我这么一 ...

  5. 数据结构——图的链表实现(邻接表表示法)

    图的链表实现 之前实现了图的数组实现 http://blog.csdn.net/cinmyheart/article/details/41370465 下图仅作示意性说明,和测试数据有点区别,测试数据 ...

  6. 图——图的存储结构(邻接矩阵和邻接表法)

    图的五种存储结构: 1.图的邻接矩阵表示法 图是由顶点和边或弧两部分组成.图的邻接矩阵(Adjacency Matrix)存储方式是用两个数组表示图,一个一维数组存储图中的顶点信息,一个二维数组(邻接 ...

  7. [邻接表] 学习邻接表的表示方法+BFS

    算法导论上面的伪代码实现哦,没啥技术,不过这个邻接表表示法(figo大神教的)很nice. 简单说一下,head里面是放着自己节点后面链的最后一个元素在边池中的位置,边池里面成一个一个链状,像并查集, ...

  8. 图 邻接表 建立 深度遍历 广度遍历

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 图的邻接 ...

  9. 图的建立-邻接表表示(C语言)

    代码如下: /* 图的邻接表表示法 */#define MaxVertexNum 100 /* 最大顶点数设为100 */ typedef int Vertex; /* 用顶点下标表示顶点,为整型 * ...

最新文章

  1. 压缩机html200a功率,汽车空调功率有多大?如果用电瓶充电器供电能行吗?
  2. python plot设置坐标轴_python matplotlib坐标轴设置的方法
  3. 博客同步至阿里云开发者社区,快来帮我涨人气吧
  4. 机器人图形变变变_幼儿园大班数学活动《图形变变变》PPT课件教案下载 - 快思幼教网...
  5. mysql 批量删除数据
  6. arch linux 同步时间,ArchLinux 设置系统时间
  7. 【转载】WinCE中串口驱动及接口函数介绍
  8. jmeter控制器--if控制器
  9. 封装绑定以BaseDataList , ListControl 为基类的函数库
  10. 读保护_混合ASIL系统中不同安全等级模块间的边界保护
  11. 项目下创建文件_Linux 下创建和使用交换文件
  12. oracleXE简易版---使用基础
  13. android汉字转拼音
  14. autojs通用拾色器
  15. Shiro的安装和基本使用
  16. cad lisp程序大集_cad lisp程序
  17. 【Oracle】plsql连接64位的Oracle
  18. 珊珊来迟的Oracle云,面向企业用户
  19. 6月世界自行车日 今天聊聊斯柯达
  20. 感觉黑客帝国的时代不远了

热门文章

  1. 转《两个个很形象的依赖注入的比喻》
  2. sql server性能分析--执行sql次数和逻辑次数
  3. ThinkPad -- Intel 无线网卡网络连接方法限制及无法用 Fn + F5 控制的问题
  4. 主键SQL教程–如何在数据库中定义主键
  5. react 统一字段验证_如何使用React的受控输入进行即时表单字段验证
  6. node mysql 批量写入_请问如何使用node.js在MySQL中进行批量插入
  7. android 无法接收广播_别告诉我你不认识Android中广播接收者(二)
  8. UI设计师培训入门都需要学习什么技术?
  9. centos7安装配置pgAgent
  10. SFB 项目经验-37-分配公网证书 For SFB 2015-持久聊天服务器(图解)