全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
图的邻接表表示法图的邻接表表示法类似于树的孩子链表表示法。对于图G中的每个顶点vi,该方法把所有邻接于vi的顶点vj链成一个带头结点的单链表,这个单链表就称为顶点vi的邻接表(Adjacency List)。1 邻接表的结点结构(1)表结点结构adjvexnext邻接表中每个表结点均有两个域: 邻接点域adjvex存放与vi相邻接的顶点vj的序号j。 链域next将邻接表的所有表结点链在一起。注意:若要表示边上的信息(如权值),则在表结点中还应增加一个数据域。(2)头结点结构vertexfirstedge 顶点vi邻接表的头结点包含两个域: 顶点域vertex存放顶点vi的信息 指针域firstedgevi的邻接表的头指针。注意: 为了便于随机访问任一顶点的邻接表,将所有头结点顺序存储在一个向量中就构成了图的邻接表表示。 有时希望增加对图的顶点数及边数等属性的描述,可将邻接表和这些属性放在一起来描述图的存储结构。2无向图的邻接表对于无向图,vi的邻接表中每个表结点都对应于与vi相关联的一条边。因此,将邻接表的表头向量称为顶点表。将无向图的邻接表称为边表。【例】对于无向图G5,其邻接表表示如下面所示,其中顶点v0的边表上三个表结点中的顶点序号分别为1、2和3,它们分别表示关联于v0的三条边(v0,v1),(v0,v2)和(v0,v3)。注意: n个顶点e条边的无向图的邻接表表示中有n个顶点表结点和2e个边表结点。3有向图的邻接表对于有向图,vi的邻接表中每个表结点都对应于以vi为始点射出的一条边。因此,将有向图的邻接表称为出边表。【例】有向图G6的邻接表表示如下面(a)图所示,其中顶点v1的邻接表上两个表结点中的顶点序号分别为0和4,它们分别表示从v1射出的两条边(简称为v1的出边):和。注意:n个顶点e条边的有向图,它的邻接表表示中有n个顶点表结点和e个边表结点。4有向图的逆邻接表在有向图中,为图中每个顶点vi建立一个入边表的方法称逆邻接表表示法。入边表中的每个表结点均对应一条以vi为终点(即射入vi)的边。【例】G6的逆邻表如上面(b)图所示,其中v0的人边表上两个表结点1和3分别表示射人v0的两条边(简称为v0的入边):和。注意:n个顶点e条边的有向图,它的邻接表表示中有n个顶点表结点和e个边表结点。5.邻接表的形式说明及其建表算法(1)邻接表的形式说明var head,next,point:array0.2001of longint; /*邻接表的表首顶点为head,后继指针为next,顶点序列为point */ p:longint; proc addedge(a,b:longint); /*(a,b)进入邻接表*/vart:longint; inc(p);pointpb; /*增加顶点b*/ if heada=0 /*(a,b)进入邻接表*/ then headap else theada; while nextt0 do tnextt; nexttp ;/*else*/;/* addedge */(2)邻接表的形式说明 const n=10; e=20; n为顶点数,e为边数type edge=edgenode; edgenode=record 边节点信息 adjvex:1.n; 边的终点(链接点) weight:integer;该边上的权,无权图可以省去 next:edge; 指向下一条边的链接 end; vex=record vertex:integer; firstedge:edge; end;var s:edge; g=array 1.n of vex;begin read(n,e); n为顶点数,e为边数 for i:=1 to n do begin read(gi. vertex); 读入顶点信息表 gi. firstedge:=nil; 表头指针初始化 end; for k:=1 to e do 建立邻接表 begin read(i,j,w); 读入一条边的起点、终点及权值 new(s); s. adjvex:=j; 新节点赋值 s.weight:=w; s.next:=gi.firstedge; gi.firstedge:=s; new(s); s. adjvex:=i; 新节点赋值 s.weight:=w; s.next:=gj.firstedge; gj.firstedge:=s; end;end.该算法的时间复杂度是O(n+e)。注意: 建立有向图的邻接表更简单,每当读入一个顶点对序号时,仅需生成一个邻接序号为j的边表结点,将其插入到vj 的出边表头部即可。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 护理医院事业编面试题目及答案
- 护理医学类读书报告题目及答案
- 软件开发公司代码安全培训试题及精准答案
- 2025年及未来5年中国水工隧道工程行业投资潜力分析及行业发展趋势报告
- 2025年及未来5年中国涂料色浆行业市场深度研究及投资战略规划报告
- 西式面点师知识考试题及答案
- 2025年感恩教育试题及答案
- 人事招聘人才筛选技巧试题及答案
- 排球场地咨询服务创新创业项目商业计划书
- 心率血氧智能胸带创新创业项目商业计划书
- 中国铁路百年征程
- 第3章能量的转化与守恒(单元解读讲义)科学浙教版九年级上册
- 气道廓清护理个案
- 公路运输安全培训教学课件
- 金融机构2025年反洗钱培训与案例分享
- 输血过敏反应课件
- 中国招投标协会招标采购从业人员招标采购法律法规真题及答案
- 同心共育静待花开-2025-2026学年高二上学期家长会
- 2025高考历史全国I卷真题试卷(含答案)
- 《地方财政学》课程教学大纲
- 护理学(副高级职称)考试题库及答案
评论
0/150
提交评论