图 (数据结构)

✍ dations ◷ 2025-12-04 04:32:35 #图 (数据结构)

在计算机科学中,图(英语:graph)是一种抽象数据类型,用于实现数学中图论的无向图和有向图的概念。

图的数据结构包含一个有限(可能是可变的)的集合作为节点集合,以及一个无序对(对应无向图)或有序对(对应有向图)的集合作为边(有向图中也称作弧)的集合。节点可以是图结构的一部分,也可以是用整数下标或引用表示的外部实体。

图的数据结构还可能包含和每条边相关联的数值(edge value),例如一个标号或一个数值(即权重,weight;表示花费、容量、长度等)。

图数据结构支持的基本操作通常包括:

如果该数据结构支持和边关联的数值,则通常也支持下列操作:

下表给出了在图上进行各种操作的复杂度。其中,用||表示节点数量,||表示边的数量。同时假设存储的信息是边上对应的值,如果没有对应值则存储∞。

邻接表在稀疏图(英语:sparse graph)上比较有效率。邻接矩阵则常在图比较稠密的时候使用,判断标准一般为边的数量| |接近于节点的数量的平方| |2;邻接矩阵也在查找两节点邻接情况较为频繁时使用。

其它表示和存储图的数据结构还包括链式前向星、十字链表、邻接多重表(英语:adjacency multilist)等。

图问题的并行计算主要存在如下几种困难:处理大量的数据、求解非常规的问题、数据不分散、数据存取对计算的比例很高等。面对这些困难,并行计算中图的表示和存储方式很重要。如果选取了不合适的表示方式,可能带来不必要的通讯花费,进而影响算法的可扩展性。在本节中,并行计算的共享和分布式(英语:distributed memory)存储模型都在考虑之列。

在共享存储模型下,图的表示和非并行计算中的场景是相同的,,因为在此模型下,对图表示(如邻接表)的并行读取操作效率已经足够高了。

在分布式存储(英语:distributed memory)模型下,通常会采用划分(英语:graph partition)点集 V {displaystyle V} p {displaystyle p} 个集合 V 0 , , V p 1 {displaystyle V_{0},dots ,V_{p-1}} 的方式,其中 p {displaystyle p} 是并行处理器的数量。随后,这些点集划分及相连的边按照标号分配给每个并行处理器。每个处理器存储原图的一个子图,而那些两个顶点分属两个子图的边则需额外特殊处理。在分布式图算法中,处理这样的边往往意味着处理器之间的通讯。

图的划分需要谨慎地在降低通讯复杂度和使划分均匀之间取舍。但图划分本身就是NP难问题。因此,实践中会使用启发式方法。

机器学习、社会网络分析等领域中,有时会处理数万亿条边的图。图的压缩存储可以减少存取和内存压力。霍夫曼编码等一些数据压缩的常见方法是可行的。同时,邻接表、邻接矩阵等也有专门的压缩存储方法以提高效率。

相关

  • 阿兹特克人阿兹特克,又译阿兹台克、阿兹提克,是存在于14世纪至16世纪的墨西哥古文明,主要分布在墨西哥中部和南部,因阿兹特克人而得名。阿兹特克人包括墨西哥谷地的多个民族,以操纳瓦特尔语
  • M13G73· double-stranded DNA binding · sequence-specific DNA binding transcription factor activity · RNA polymerase II distal enhancer sequence-specific DNA b
  • CVL-48 塞班岛号塞班岛号航空母舰(USS Saipan,CVL-48),是美国海军塞班岛级首舰。在二战期间建造,由巡洋舰舰体改建而成,战后1946年才入役,因为作战用途远低于中途岛级航空母舰,于1965年被改装成阿灵
  • 国会山庄 (加拿大)National Capital Commission国会山庄(英语:Parliament Hill;法语:Colline du Parlement)位于加拿大安大略省渥太华市中心,坐落渥太华河南岸的官地,为加拿大国会建筑群所在。国会建
  • 大张伟大张伟(1983年8月31日-),原名张伟,出生于中国北京,歌手、演员、主持人、作词家和作曲家,是已解散的花儿乐队主唱。大张伟在15岁在“忙蜂”酒吧为麦田守望者乐队做暖场演出时被经纪
  • 约翰·法比安约翰·麦克里利·法比安(John McCreary Fabian,1939年1月28日-),前美国空军上校及美国国家航空航天局宇航员,执行过STS-7以及STS-51-G任务。
  • 乔恩·沃伊特乔纳森·文森特·“乔恩”·沃伊特(英语:Jonathan Vincent "Jon" Voight,1938年12月29日-),美国著名演技派演员,动作片演员。多演反派角色,三次入围提名美国奥斯卡最佳男主角奖且得
  • 巴特帕拉巴特帕拉(Bhatpara),是印度西孟加拉邦North Twentyfour Parganas县的一个城镇。总人口441956(2001年)。该地2001年总人口441956人,其中男性243065人,女性198891人;0—6岁人口40501人
  • 孟加拉国国徽孟加拉国国徽启用于1972年2月28日。为圆形。中央图案为国花睡莲。下方水纹象征当地河道纵横的地理环境。上方的黄麻为当地主要的经济作物,两旁为稻穗所装饰。黄麻两则的四颗
  • 鲍里斯·巴拉日鲍里斯·巴拉日(斯洛伐克语:Boris Baláž,1997年11月20日-)生于利普托夫斯基米库拉什,是一名斯洛伐克男子射箭运动员,主攻反曲弓。他于2008年(一说2007年)开始从事射箭运动,2012年开始参加国际比赛。运动生涯期间曾参加2014年南京青奥、2015年欧洲运动会、2015年世界射箭锦标赛和2016年里约奥运等赛事。