图论-基本概念

常见术语中英对照

  • 图:graph
    • 子图:subgraph
    • 导出子图/诱导子图/生成子图:induced subgraph (子图的所有节点之间的所有边都要继承)
    • 有向图:directed graph
    • 无向图:undirected graph
    • 带权图:weighted graph
    • 无权图:unweighted graph
    • 稀疏图:sparse graph
    • 稠密图:dense graph
  • 顶点:vertex(vertices)
  • 边:edge
  • 端点:endpoint
    • an edge joins its endpoints
  • 邻接的:adjacent
    • 邻接表:adjacency list(每个节点通过链表(linked list)存储其邻接的节点)
    • 邻接矩阵:adjacency matrix
  • 关联:incident
    • A and B is incident on (A,B)
    • (A,B) is incident on A and B
  • 度:degree
  • 路径:path
    • a path contains vertices and edges
    • a path has subpaths
    • 简单路径:simple path
  • 可达的:reachable
    • u is reachable from v
  • 回路/环:cycle
    • 简单回路:simple cycle(没有重复的顶点)
    • 无回路的/无环的:acyclic
      • 有向无环图:directed acyclic graph
  • 连通的:connected
    • 连通图:connected graph
    • 非联通图:disconnected graph
    • 联通分量:connected component

图的两种常用表示

邻接表

使用一个数组表示顶点的集合,每个顶点引出一个链表,表示顶点关联的边。

在这里插入图片描述

  • 存储的空间开销: O ( V + E ) O(V+E) O(V+E) 个存储单元
    • O ( V + E ) O(V+E) O(V+E) O ( ∣ V ∣ + ∣ E ∣ ) O(|V|+|E|) O(V+E) 的简写
    • O ( V + E ) O(V+E) O(V+E) 的由来:顶点数组占用 ∣ V ∣ |V| V 个存储单元,而根据握手定理,所有链表节点加起来的个数一共是 2 ∣ E ∣ 2|E| 2∣E 个,故一共 ∣ V ∣ + 2 ∣ E ∣ |V|+2|E| V+2∣E 个单元
    • 这里的“存储单元”不是比特数,而是比特数的整数倍。
      • 具体地说,比特位数 ≈ \approx l o g 2 log_2 log2(表示数字大小)
  • 查找的时间开销:对顶点 u u u查找的开销为 O ( d e g r e e ( u ) ) O(degree(u)) O(degree(u))
  • 邻接表用于稀疏图效果好

邻接矩阵

使用二维数组来表示,二维数组的值代表图的一条边。

在这里插入图片描述

  • 存储的空间开销: O ( V 2 ) O(V^2) O(V2)个存储单元
  • 查找的时间开销: O ( 1 ) O(1) O(1)
  • 若为无向图,则为对称矩阵
  • 更适合用于稠密图

无向图边数与度数的关系:握手定理

任意无向图中,所有顶点的度数之和等于边数的两倍。换句话说,对于一个无向图 G = ( V , E ) G=(V,E) G=(V,E),有 ∑ v ∈ V d e g r e e ( v ) = 2 ∣ E ∣ \sum\limits_{v\in V} degree(v)=2|E| vVdegree(v)=2∣E

有向图边数与度数的关系

任意有向图中,出度之和与入度之和都等于边数。即 ∑ v ∈ V i n − d e g r e e ( v ) = ∑ v ∈ V o u t − d e g r e e ( v ) = ∣ E ∣ \sum\limits_{v\in V} in-degree(v)=\sum\limits_{v\in V} out-degree(v)=|E| vVindegree(v)=vVoutdegree(v)=E

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值