【转载】邻接表表示法
图的邻接表表示法
图的邻接表表示法类似于树的孩子链表表示法。对于图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
【转载】邻接表表示法相关推荐
- 有向图的邻接表表示法
图的邻接表表示法类似于树的孩子链表表示法.对于图G中的每个顶点vi,该方法把所有邻接于vi的顶点vj链成一个带头结点的单链表,这个单链表就称为顶点vi的邻接表(Adjacency List). 1. ...
- 《数据结构》-图的邻接表表示法(四)
邻接表表示法(链式) 存储定义: 顶点:按编号顺序将顶点数据存储在一维数组中 关联同一顶点的边(以顶点为尾的弧):用线性链表存储 无向图的邻接表 例如,如下无向图 则它的邻接表为 无向图邻接表的特点: ...
- C语言邻接表表示法创建无向图并输出
C语言邻接表表示法创建无向图并输出 邻接表是图的一种链式存储结构,对图的每个顶点建立一个单链表,单链表第一个结点存放顶点信息,其余存放有关边信息. 邻接表由表头结点表和边表组成. 邻接表存储结构 #i ...
- 无向图的邻接表表示法 及 深搜遍历DFS
昨天有小朋友求助关于图的邻接表示及深搜,记得一年前的我学数据结构也搞的乱七八糟的.我就顺便学下吧,网上的代码都好规范的感觉,读那些代码的能力不够,自己把那些代码简化了下. 非常感谢那些小朋友给我这么一 ...
- 数据结构——图的链表实现(邻接表表示法)
图的链表实现 之前实现了图的数组实现 http://blog.csdn.net/cinmyheart/article/details/41370465 下图仅作示意性说明,和测试数据有点区别,测试数据 ...
- 图——图的存储结构(邻接矩阵和邻接表法)
图的五种存储结构: 1.图的邻接矩阵表示法 图是由顶点和边或弧两部分组成.图的邻接矩阵(Adjacency Matrix)存储方式是用两个数组表示图,一个一维数组存储图中的顶点信息,一个二维数组(邻接 ...
- [邻接表] 学习邻接表的表示方法+BFS
算法导论上面的伪代码实现哦,没啥技术,不过这个邻接表表示法(figo大神教的)很nice. 简单说一下,head里面是放着自己节点后面链的最后一个元素在边池中的位置,边池里面成一个一个链状,像并查集, ...
- 图 邻接表 建立 深度遍历 广度遍历
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 图的邻接 ...
- 图的建立-邻接表表示(C语言)
代码如下: /* 图的邻接表表示法 */#define MaxVertexNum 100 /* 最大顶点数设为100 */ typedef int Vertex; /* 用顶点下标表示顶点,为整型 * ...
最新文章
- 压缩机html200a功率,汽车空调功率有多大?如果用电瓶充电器供电能行吗?
- python plot设置坐标轴_python matplotlib坐标轴设置的方法
- 博客同步至阿里云开发者社区,快来帮我涨人气吧
- 机器人图形变变变_幼儿园大班数学活动《图形变变变》PPT课件教案下载 - 快思幼教网...
- mysql 批量删除数据
- arch linux 同步时间,ArchLinux 设置系统时间
- 【转载】WinCE中串口驱动及接口函数介绍
- jmeter控制器--if控制器
- 封装绑定以BaseDataList , ListControl 为基类的函数库
- 读保护_混合ASIL系统中不同安全等级模块间的边界保护
- 项目下创建文件_Linux 下创建和使用交换文件
- oracleXE简易版---使用基础
- android汉字转拼音
- autojs通用拾色器
- Shiro的安装和基本使用
- cad lisp程序大集_cad lisp程序
- 【Oracle】plsql连接64位的Oracle
- 珊珊来迟的Oracle云,面向企业用户
- 6月世界自行车日 今天聊聊斯柯达
- 感觉黑客帝国的时代不远了
热门文章
- 转《两个个很形象的依赖注入的比喻》
- sql server性能分析--执行sql次数和逻辑次数
- ThinkPad -- Intel 无线网卡网络连接方法限制及无法用 Fn + F5 控制的问题
- 主键SQL教程–如何在数据库中定义主键
- react 统一字段验证_如何使用React的受控输入进行即时表单字段验证
- node mysql 批量写入_请问如何使用node.js在MySQL中进行批量插入
- android 无法接收广播_别告诉我你不认识Android中广播接收者(二)
- UI设计师培训入门都需要学习什么技术?
- centos7安装配置pgAgent
- SFB 项目经验-37-分配公网证书 For SFB 2015-持久聊天服务器(图解)