图 (数据结构)

✍ dations ◷ 2025-12-07 08:19:22 #图 (数据结构)

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

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

相关

  • 高频高频(英语:High frequency)是指频带由3MHz到30MHz的无线电波。比HF频率略低的是中频(MF),比HF频率略高的是甚高頻(VHF)。HF多数是用作民用电台广播及短波广播。其对于电子仪器所发出
  • 沈清传《沈清传》,是在朝鲜民间传说的基础上加工成书的小说,与《兴夫传》、《春香传》一起被称为朝鲜三大古典名著。孝女沈清出生七天后丧母,与盲父沈学圭相依为命,艰难度日。他们受了
  • X战警系列电影演员列表本列表为X战警电影系列演员列表,记述电影出现过的变种人及在电影中使用过的超能力。角色及其拥有的超能力,如下:{在漫画及动画 的角色定为 并非邪恶 而是与X教授经营不同理念为
  • 双斑草雀双斑草雀(学名:),属于雀形目梅花雀科,分布于澳洲东部及北部地区。身长10-11cm,主要以禾本科植物的种子为食。双斑草雀与其他梅花雀科鸟类同样有高度的社会性,雄鸟会通过"唱情歌"向
  • 霍尔蒂恰岛坐标:47°49′N 35°6′E / 47.817°N 35.100°E / 47.817; 35.100霍尔蒂恰岛(Khortytsia island)是乌克兰的岛屿,位于第聂伯河,由扎波罗热负责管辖,长12.5公里、宽2.5公里,面积23.
  • 加伊坦·德·罗切布埃尔加伊坦·德·格里莫德·德·罗切布埃尔(Gaëtan de Grimaudet de Rochebouët) (法语发音:.mw-parser-output .IPA{font-family:"Charis SIL","Doulos SIL","Linux Libertine",
  • 曹涵美曹涵美(1902年-1975年),原名张美宇,男,江苏无锡人,中国漫画家。父亲张亮生。舅父曹子瑜(因过继给舅父而改姓曹)。兄张光宇、弟张正宇均为画家。
  • 比尔·艾文斯 美国比尔·艾文斯(Bill Evans,本名为 William John Evans,1929年8月16日-1980年9月15日),为美国20世纪著名的爵士乐钢琴家,他在印象派和声的使用、传统爵士乐曲目的创造性诠释,以及他最著名的有如歌曲般节奏的独立旋律线,影响了一整个世代的爵士钢琴家,例如奇克柯瑞亚(Chick Corea)、贺比汉考克(Herbie Hancock)、约翰泰勒(John Taylor)、史提夫昆恩(Steve Kuhn)、唐傅利曼(Don Friedman)、玛丽安迈帕特兰(Mari
  • 阿尔布雷希特 (萨克森-艾森纳赫公爵)阿尔布雷希特(德语:Albrecht von Sachsen-Eisenach,1599年7月27日-1644年12月20日),萨克森-艾森纳赫公爵,1640年至1644年在位。1633年,阿尔布雷希特与萨克森-阿尔滕堡公爵约翰·菲利普的妹妹多萝西亚(英语:Dorothea of Saxe-Altenburg)结婚,两人没有子女。1644年阿尔布雷希特于艾森纳赫去世,领地由哥哥威廉继承。
  • 文言 (编程语言)文言(英语:)是一门以汉语文言文为基础进行程序编写所用的语言。编译器主要以JavaScript实现,支持将源代码编译为JavaScript、Python或Ruby代码。不同于大部分中文编程语言,wenyan-lang不只是以中文取代其他编程语言的关键字。它定义了自己的语法,使之读起来接近古文。wenyan-lang常用的符号只有中文字和引号,亦不须分行,以符合古人的书写习惯。这个语言的开发者是来自卡内基梅隆大学的黄令东,并且当时仅是一名大四学生;在这一语言之前,他曾成功设计出了电脑自动作中国山水画的程序,