图 (数据结构)

✍ dations ◷ 2025-09-11 04:53:11 #图 (数据结构)

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

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

相关

  • 湿疹湿疹(eczema)是泛指一系列持久和续发的皮疹,以发红、水肿、瘙痒和发干为表征,可伴有结痂、剥落、起泡、开裂、出血或渗血。这些症状也是许多“具有明显搔痒感的皮肤炎”的共同表
  • 迪亚士巴尔托洛梅乌·迪亚士(葡萄牙语:Bartolomeu Dias,1451年-1500年5月24日)是一名葡萄牙贵族和著名航海家,他于1487年带领船队航行至非洲大陆最南端并发现好望角,为葡萄牙开辟通往印度
  • 法罗群岛克朗法罗群岛克朗为法罗群岛流通货币,由丹麦国家银行发行。法罗群岛克朗不是一种独立的货币,而是丹麦克朗的一个版本,与丹麦克朗等值,因此在ISO 4217中没有自己的代码。1克朗=100欧
  • 克里斯帝安·卡玛德安道尔大公 · 比利时国王 · 丹麦女王 · 列支敦士登亲王 · 卢森堡大公 · 摩纳哥亲王 · 西班牙国王(沿革:总统) · 瑞典国王 · 英国女王 (沿革:英格兰 · 苏格兰
  • 谢启华谢启华(1851年-?),广西桂林人,清朝政治人物。进士出身。光绪六年(1880年),参加庚辰科殿试,登进士二甲第89名。同年五月,著分部学习。曾于光绪年间接替程祖福任建宁府知府一职,光绪三十
  • 黄化龙黄化龙,浙江绍兴府余姚县人,明朝政治人物。同进士出身。万历元年(1573年)癸酉科浙江举人,二十三年(1595年)乙未科进士,授行人司行人,奉命册封。
  • 北京国安足球俱乐部2008赛季北京国安足球俱乐部2008赛季,记录了北京国安足球队参加2008赛季中国足球超级联赛以及亚洲冠军联赛的比赛结果以及球队人员情况。更新日期:2008年7
  • 费耶诺德费耶诺德鹿特丹(荷兰语:Feyenoord Rotterdam),一般称为费耶诺德,是一支位于荷兰第二大城市鹿特丹的足球俱乐部。成立于1908年7月19日。鹿特丹市尚有两支职业足球队,鹿特丹斯巴达(Sparta Rotterdam)及SBV精英(Excelsior Rotterdam),在荷兰甲级联赛中比赛。费耶诺德成立于1908年,是荷兰足球传统三大劲旅之一,与阿贾克斯及PSV埃因霍温鼎足而立,曾经垄断荷兰足球坛近 40 年。不过,随着阿尔克马尔、特温特等新兴势力冒起,费耶诺德近年成绩已大不如前,踏入二
  • 朱旭 (演员)朱旭(1930年4月15日-2018年9月15日),男,汉族,辽宁沈阳人,中国演员。最为著名的作品是在吴天明导演的影片《变脸》和张扬导演的影片《洗澡》中担任男主角。他曾荣获一次百花奖最佳男配角、一次东京国际影展最佳男演员,并五次入围金鸡奖最佳男主角。1949年4月,朱旭考入华北大学第三部文艺干部训练班,7月随华北大学文工队三队到天津等地演出,11月调华北大学文工队二团(即后来的中央戏剧学院话剧团)任演员。1952年,他成为北京人民艺术剧院成立后的第一批演员。1980年代以后活跃于大小银幕,1995年于中日
  • 阿列克谢·拉里奥诺夫阿列克谢·尼古拉耶维奇·拉里奥诺夫(俄语:Алексе́й Никола́евич Ларио́нов,1907年8月6日(19日)-1960年9月22日)苏联共产党梁赞州州委第一书记,任内制造了虚假的梁赞奇迹。后事情败露,按官方说法,1960年死于心脏病,有传闻说死于自杀。