- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
图邻接表表示法
图的邻接表表示法
图的邻接表表示法类似于树的孩子链表表示法。对于图G中的每个顶点vi,该方法把所有邻接于vi的顶点vj链成一个带头结点的单链表,这个单链表就称为顶点vi的邻接表(Adjacency List)。
1. 邻接表的结点结构
(1)表结点结构
adjvex?
next
邻接表中每个表结点均有两个域:
① 邻接点域adjvex
存放与vi相邻接的顶点vj的序号j。
② 链域next
将邻接表的所有表结点链在一起。
注意:若要表示边上的信息(如权值),则在表结点中还应增加一个数据域。
(2)头结点结构
vertex
firstedge
顶点vi邻接表的头结点包含两个域:
① 顶点域vertex
存放顶点vi的信息
② 指针域firstedge
vi的邻接表的头指针。
注意:
① 为了便于随机访问任一顶点的邻接表,将所有头结点顺序存储在一个向量中就构成了图的邻接表表示。
② 有时希望增加对图的顶点数及边数等属性的描述,可将邻接表和这些属性放在一起来描述图的存储结构。
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的出边):v1,v0和v1,v4。
注意:n个顶点e条边的有向图,它的邻接表表示中有n个顶点表结点和e个边表结点。
4.有向图的逆邻接表
在有向图中,为图中每个顶点vi建立一个入边表的方法称逆邻接表表示法。
入边表中的每个表结点均对应一条以vi为终点(即射入vi)的边。
【例】G6的逆邻表如上面(b)图所示,其中v0的人边表上两个表结点1和3分别表示射人v0的两条边(简称为v0的入边):v1,v0和v3,v0。
注意:
n个顶点e条边的有向图,它的邻接表表示中有n个顶点表结点和e个边表结点。
5.邻接表的形式说明及其建表算法
(1)邻接表的形式说明
var
head,next,point:array[0..2001]of longint; /*邻接表的表首顶点为head,后继指针为next,顶点序列为point */
p:longint;
proc addedge(a,b:longint); /*(a,b)进入邻接表*/
var t:longint;
{ inc(p);point[p]←b; /*增加顶点b*/
if head[a]=0 /*(a,b)进入邻接表*/
then head[a]←p
else{ t←head[a];
while next[t]0 do t←next[t];
next[t]←p };/*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(g[i]. vertex); {读入顶点信息表}
g[i]. firstedge:=nil; {表
您可能关注的文档
- 国内外纤维成分标签对比分析.pdf
- 国内企业管理案例研究进展回顾与改进步骤__省略_管理案例与理论构建研究论坛_2.pdf
- 国内外面包工业发展与市场现状.pdf
- 国内外优秀遗传学教材比较与借鉴.pdf
- 国内外开展孕前保健服务研究进展_谢菲.pdf
- 国内外非显著规模经济性文化产业规模经营及影响因素比较研究_旅游酒店业实证研究.pdf
- 国内外生物化学教材比较.pdf
- 国内心理治疗效果文献计量学分析.pdf
- 国内心理健康服务从业者继续教育培训需求现状及相关因素.pdf
- 国内连锁超市与国外差距及对策.pdf
- 2024年证券分析与咨询服务项目投资申请报告代可行性研究报告.docx
- 2024年铬酸酐项目资金申请报告代可行性研究报告.docx
- 2024年清洁胶项目资金申请报告代可行性研究报告.docx
- 2024年肉松饼项目投资申请报告代可行性研究报告.docx
- 2024年陆上泵项目资金需求报告代可行性研究报告.docx
- 2024年未硫化复合橡胶及其制品项目资金需求报告代可行性研究报告.docx
- 2024年精密温控节能设备项目资金筹措计划书代可行性研究报告.docx
- 2024年汽车覆盖件模具项目资金筹措计划书代可行性研究报告.docx
- 宋词行书钢笔字帖.pdf
- 我的暑假生活作文三年级300字10篇.pdf
文档评论(0)