图论基础

概念

是由顶点V和边E的集合组成的二元组,记G=(V,E)

有向图、无向图、有权图、无权图、连通图(联通分量)、二分图

顶点的(无向图种与顶点相连的边的数目)、入度(有向图中以该顶点为终点的边的数目)、出度(有向图中以该顶点为起点的边的数目),度等于入度和出度之和,所有边的入度和=所有边的出度和=边数

图的定义是指将边作为一个集合,从而允许两个无向边具有相同的端点。对于两个有向边可以有相同的起点和终点。这种边称为平行边或者多重边。另一种边的特殊类型是顶点和自己连接,也就是说两个顶点重合,我们称这样的边为自循环。除了少数例外,图没有平行边和自循环

图G中从顶点u到顶点v有一条路径,我们称u到达v,并且v是从u可达的。在无向图中,可达性的概念是对称的。

如果一个图是连通的,则意味着对于任何两个顶点,它们中间都是有路径的。

如果对于G的任何两个顶点u和v,都有u可达v并且v可达u,则有向图是强连通

图G的子图是顶点和边是G的顶点和边的各自的子集的图H。G的生成子图是包含图G的所有顶点的图。

如果图G是不连通的,它的最大联通子图称为G的连通分支。

森林是没有循环的图。是连通的森林,即没有循环的联通图。图的生成树是树的生成子图

重要特性

特性1:如果G是由m条边和顶点集V的图,那么 \sum_{v\ in\ V}deg(v)=2m,即边对顶点度数的总贡献度是边数目的两倍

特性2:如果G是有m条边和顶点集V的有向图,那么\sum_{v\ in\ V}in\ deg(v)=\sum_{v\ in\ V}out\ deg(v)=m 即边对它的起点u的出度贡献了一个单元,对终点v的入度贡献了一个单元。因此边对顶点出度的总贡献和边的数目相等,入度也是一样。

特性3:给定G为具有n个顶点m条边的简单图。如果G是无向的,那么m<=\frac{n(n-1)}{2},如果G是有向的,那么m<=n(n-1)

假设G是无向的。因为没有两条边可以有相同的端点且没有自循环,在这种情况下G的顶点的最大度是n-1,通过特性1可知,2m<=n(n-1)。假设G是有向的,因为没有两条边具有相同的起点和终点,且没有自循环,这种情况下G的顶点的最大入度是n-1,通过特性2,m<=n(n-1)

特性4:给定G是有n个顶点和m条边的无向图。

  • 如果G是联通的,那么m>=n-1
  • 如果G是一棵树,那么m=n-1
  • 如果G是森林,那么m<=n-1

图的数据结构

边列表:对所有边采用无序的列表。但是没有有效的办法找到特定的边(u,v)​,或者将所有的边入射到顶点v

邻接列表:为每个顶点维护一个单独的列表,包括入射到顶点的那些边。可以通过取较小集合的并集来确定完整的边集合,也可以更高效地找到所有入射到给出顶点的边

邻接图:和邻接列表非常相似,但是所有入射到顶点的边的次级容器被组织成一个图,而不是一个列表,用相邻的顶点作为键。这允许在O(1)的时间内访问特定的边(u,v)

邻接矩阵:对于有n个顶点的图维持一个n*n矩阵来提供最坏的情况下访问特定边(u,v)的时间O(1)。每一项专用于为顶点u和v的特定对存储一个参考边(u,v);如果没有这样的边存在,该表项即为空

边列表

可能是最简单的,但不是最有效的。所有顶点存储在一个无序的列表V中,并且所有的边对象存储在一个无序的列表E中

邻接列表结构

将图形的边存储在较小的位置来对其进行分组,从而和每个单独的顶点相关联的次级容器结合起来。具体的,对每个顶点v维持一个集合l(v),该集合被称为v的入射列表,其中全部都是入射到v的边。(在有向图的情况下,输出边和输入边分别存储在两个单独的集合lout(v)和lin(v)中。

同时要求邻接列表的基本结构在某种程度上保持顶点集合V,因此可以在O(1)时间内为给出的顶点v找出次级结构l(v)

传递闭包

命题:对于i=1,...,n,当且仅当有向图Gv_iv_j有一条有向路径时,有向图G_k有边(v_i,v_j),其中中间的顶点在集合{v_1,...,v_k}中,特别的,G_kG^*相等,G^*G的传递闭包

该命题为计算G的依赖于一系列界限的每个G_k传递闭包提出了一个简单算法。这个算法被称为Floyd_Warshall算法

没有有向循环的有向图被叫作有向非循环图,或者简称DAG

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,686评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,668评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,160评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,736评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,847评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,043评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,129评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,872评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,318评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,645评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,777评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,470评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,126评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,861评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,095评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,589评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,687评论 2 351