图 (数据结构)

✍ dations ◷ 2025-12-01 16:27:57 #图 (数据结构)

在计算机科学中,图(英语: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难问题。因此,实践中会使用启发式方法。

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

相关

  • 高雄市纹章高雄市(たかおし),存在于1924年至1945年的台湾日治时期行政区划,隶属高雄州,由高雄郡高雄街升格而来,二次大战后改为台湾省高雄市。于1924年12月25日由高雄州高雄郡高雄街升格
  • 圣巴巴拉加大加州大学圣巴巴拉分校(英语:University of California, Santa Barbara,简称UCSB,又常被译作圣巴巴拉加州大学),是一所著名的公立研究型大学,加州大学系统的成员之一。学校坐落在位
  • 金钱本色《金钱本色》(英语:)是一部1986年的美国剧情电影,由马丁·斯科塞斯执导,剧本由理察·普莱斯(英语:Richard Price (writer))创作,根据华特·戴维斯(英语:Walter Tevis)于1984年出版的同名
  • 氟化亚锡氟化亚锡,又称二氟化锡是一种无机化合物,化学式 SnF2。它是一种无色固体,是牙膏的添加剂之一。氟化亚锡的引入是来替代氟化钠的,以防止蛀牙。为此,约瑟夫·穆勒(Joseph Muhler)和威
  • 费锡琮费锡琮(1661年-1725年),字厚藩,新繁(今四川成都市新都区)人,清代诗人、经学家。费密长子。先祖为新繁世族,祖父费经虞避难至扬州,长期寓居江南。顺治十八年(1661年)生,十一岁时与弟费锡璜
  • 詹姆斯·克兰克詹姆斯·克兰克(英语:James Cranke,1707年6月23日-1780年10月28日)出生于英国巴罗因弗内斯港附近的小厄斯维克(英语:Urswick)村,其生命中的大部分时间都在该地度过。克兰克曾是一名泥
  • 湟水河湟水又称西宁河,是黄河上游最大的一条支流,发源于青海省祁连山系大坂山南麓,自西向东流经巴燕峡、湟源峡、穿过西宁盆地、民和盆地,与大通河汇合后流入甘肃省,至八盘峡附近汇入黄
  • 斯洛文尼亚经济斯洛文尼亚是一个发达国家,是最早符合加入欧盟资格的前南斯拉夫地区,人均GDP为欧盟27国平均水准的88%,在东欧经济转型国家当中人均GDP名列第一。2007年1月加入欧元区,斯洛文尼亚使用欧元作为法定货币。2010年开始,斯洛文尼亚是经合组织成员国。在南斯拉夫时期,斯洛文尼亚已是南斯拉夫联邦经济最发达的成员。斯洛文尼亚在前南斯拉夫联邦成员国中具有较高的教育水平,经济以服务业为主,农业人口不足全国人口的7%,而工业则相对发达,工业产值是农业产值的5倍以上,但工业生产所需原料仰赖外国进口。其中加工业是工业中最
  • 962年
  • 机甲英雄机斗勇者《机甲英雄 机斗勇者》是鈊象电子跟日本动画制作公司 GONZO合作制作的动画,网野哲郎、柳濑敬之协力,2019年8月16日起在“巴哈姆特动画疯”首播。故事背景在西元 30 世纪的地球,由鈊近期也旗下的卡片游戏机《机甲英雄》改编。公元30世纪,地球人类迈向了高度理性与和平的全新世代。由于屏弃战争,与战争相关的尖端科技被投入于全新的机甲领域之中。各大区域皆设置专属的机甲学院,负责培育优秀的少年、少女成为机甲驾驶员,并以争夺每年举办的“机甲武斗大会”冠军作为最高荣耀。本故事的主角里昂,是一名12岁的热血少年。他