图 (数据结构)

✍ dations ◷ 2025-12-01 03:11:01 #图 (数据结构)

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

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

相关

  • 奎孕酮奎孕酮(英语:Quingestrone)也称为孕酮-3-烯醇环戊醚(progesterone 3-cyclopentyl enol ether,PCPE)是一种黄体制剂药物,在1962年起用作复合口服避孕药,但在意大利等国已不再使用奎孕
  • 克氏综合症克氏综合征(Klinefelter's syndrome)或称XXY、47XXY综合征、俗称次雄性综合征,是一系列由于男性有两条或两条以上的X染色体所导致的疾病。该疾病的主要特征是不孕。通常症状都
  • 澳大利亚旗帜列表这里是澳大利亚联邦相关旗帜的旗帜列表。民用旗政府旗军用旗民船旗政府船旗军舰旗
  • 外直肌外直肌(Lateral rectus muscle)是一块在眼窝外侧的肌肉,为六块眼外肌(英语:Extraocular muscles)中控制眼睛运动(英语:Eye movement)的其中一块,受外旋神经(CN VI)的上分支所支配。外
  • 偶极在电磁学里,有两种偶极子(dipole):偶极子的性质可以用它的偶极矩描述。电偶极矩( p {\displaystyle \mathbf {p} }
  • 柬埔寨国王柬埔寨君主(高棉语:ព្រះមហាក្សត្រនៃព្រះរាជាណាចក្រកម្ពុជា,法语:Roi du Cambodge)是柬埔寨王国的国家元首。根据现行宪法,柬埔寨国王仅为国
  • 中央省中央省为巴布亚新几内亚位于南方海岸的省份,其人口规模183,983人(2000年普查),面积29,500平方公里。中央省的首府位于莫尔兹比港,是巴布亚新几内亚的首都。
  • 叶卡捷琳娜·格拉泽叶卡捷琳娜·乔治斯·阿苏利·格拉泽(格鲁吉亚语:ეკატერინე გიორგის ასული გელაძე),俄文名叶卡捷琳娜·格奥尔基耶夫娜·格拉泽(俄语:Екатери́на Гео́ргиевна Гела́дзе,罗马化:Ekaterina Georgievna Geladze,1856/1858年-1937年6月4日),别称卡卡,是苏维埃社会主义共和国联盟第三任最高领导人约瑟夫·维萨里奥诺维奇·斯大林之母。卡卡生于哥里一个农民家庭,嫁给了鞋匠维萨里奥·朱加什维利,有三个儿子,只有小儿子约瑟布存
  • 印度-帕劳关系印度-帕劳关系是指印度和帕劳之间存在的国际关系。印度驻菲律宾马尼拉大使馆同时负责对帕劳的外交事务。印度和帕劳于1995年4月建立了外交关系。当时,两国通过联合国小岛屿发展中国家论坛进行了定期磋商和对话,帕劳是该论坛的成员。印度还是太平洋岛国论坛的成员,印度是该论坛的官方对话伙伴。2014年,莫迪政府启动了印度-太平洋岛国合作论坛,推动了双边关系。包括卫生部长格雷戈里奥·恩格芒和其他高级官员在内的帕劳代表团出席了莫迪总理于2014年11月19日在斐济苏瓦主办的第一届印度-太平洋岛国合作论坛峰会。印度驻帕劳(
  • 凤凰山 (马来西亚)凤凰山是马来西亚的其中一个华人私会党(即黑帮),为洪门分裂出来的其中一个支派,其势力范围包括:新山(甘拔士、福林园、淡杯)、依斯干达公主城(皇后花园、安乐市、五间店、振林山、大学城、十四哩、六里半、乌鲁槽)、巴西古当马西、笨珍(北干那那、咸水港)、麻坡等。2018年11月11日,550私会党以及凤凰山私会党争夺地盘而发生纠纷,最终在位于马来西亚士姑来的国光学校内引发殴斗杀人事。该事件导致一人死亡以及4人受伤。马来西亚皇家警察在该事件中逮捕14名与殴斗事件相关的私会党党员以及起获一些用于殴斗事件中的武器。该