图的分类大全

图的分类大全

一、按边的方向分

1. 无向图(Undirected Graph)

  • 边没有方向,(u, v)(v, u) 是同一条边

  • 例:社交网络中的"好友关系"

    A --- B --- C
    | |
    D --------------- E

2. 有向图(Directed Graph / Digraph)

  • 边有方向,u → vv → u 是不同的边

  • 例:网页链接、任务依赖

    A → B → C
    ↓ ↑
    D ------------------→

3. 混合图(Mixed Graph)

  • 同时包含有向边和无向边(较少见)

二、按边的权重分

1. 无权图(Unweighted Graph)

  • 边只表示连接关系,没有权重

2. 带权图(Weighted Graph)

  • 每条边有一个权值(距离、费用、时间等)

    A ---5--- B ---3--- C
    | |
    8 2
    | |
    D ------------4------------ E


三、按连通性分

1. 连通图(Connected Graph)【无向图】

  • 任意两个节点之间都存在路径

  • 整张图是"一整块"

    A --- B --- C
    |
    D
    ✅ 任意两点可达

2. 非连通图(Disconnected Graph)

  • 存在至少两个节点之间没有路径

  • 图由多个连通分量组成

    A --- B C --- D
    (两个独立部分)

3. 强连通图(Strongly Connected Graph)【有向图】

  • 任意两点 u、v,既能从 u 到达 v,也能从 v 到达 u

    A → B
    ↑ ↓
    C ← D
    ✅ 形成环,任意两点互达

4. 弱连通图(Weakly Connected Graph)【有向图】

  • 忽略边的方向后,变成连通图

  • 但有方向时,不能保证互达

    A → B → C
    (忽略方向后连通,但 C 无法到达 A)

5. 连通分量 / 强连通分量(SCC)

概念 适用 说明
连通分量 无向图 最大连通子图
强连通分量(SCC) 有向图 内部任意两点互达的最大子图

四、按结构特征分

1. 完全图(Complete Graph)

  • 任意两个节点之间都有边

  • n 个节点有 n(n-1)/2 条边(无向)

    复制代码
      A
     /|\
    B---+---C
     \|/
      D

    K₄:4个节点,6条边

2. 稀疏图 vs 稠密图

类型 边数 常用存储
稀疏图 远小于 V² 邻接表
稠密图 接近 V² 邻接矩阵

3. 二部图 / 二分图(Bipartite Graph)

  • 节点可分为两个集合,所有边只在两集合之间

  • 例:用户与商品的购买关系

    用户集合 商品集合
    U1 ------------ P1
    U1 ------------ P2
    U2 ------------ P2
    U3 ------------ P3

4. 树(Tree)

  • 连通 + 无环的无向图
  • n 个节点,恰好 n-1 条边

5. 森林(Forest)

  • 多棵树的集合(无环无向图)

6. 有向无环图(DAG)

  • 有向 + 无环

  • 拓扑排序的基础,用于任务调度、依赖管理

    A → B → D
    ↓ ↑
    C ---------------------

7. 平面图(Planar Graph)

  • 可以画在平面上且边不交叉的图
  • 例:地图的行政区域划分

五、按特殊用途分

1. 欧拉图(Eulerian Graph)

  • 存在欧拉回路(经过每条边恰好一次并回到起点)
  • 条件:所有节点的度数为偶数

2. 哈密顿图(Hamiltonian Graph)

  • 存在哈密顿回路(经过每个节点恰好一次并回到起点)
  • 例:旅行商问题(TSP)

3. 网络流图(Flow Network)

  • 有向带权图,边有容量限制
  • 用于最大流、最小割问题

六、总览思维导图

复制代码
图
├── 按方向
│   ├── 无向图
│   ├── 有向图
│   └── 混合图
├── 按权重
│   ├── 无权图
│   └── 带权图
├── 按连通性
│   ├── 连通图(无向)
│   ├── 非连通图
│   ├── 强连通图(有向)
│   └── 弱连通图(有向)
├── 按结构
│   ├── 完全图
│   ├── 二分图
│   ├── 树 / 森林
│   ├── DAG(有向无环图)
│   └── 平面图
└── 按特殊性质
    ├── 欧拉图
    ├── 哈密顿图
    └── 网络流图

常见图算法对应关系

问题 适用图类型 算法
最短路径 带权有向/无向图 Dijkstra、Bellman-Ford、Floyd
最小生成树 带权无向连通图 Kruskal、Prim
拓扑排序 DAG Kahn、DFS
连通性检测 无向图 BFS/DFS、并查集
强连通分量 有向图 Tarjan、Kosaraju
最大流 网络流图 Ford-Fulkerson、Dinic
二分图匹配 二分图 匈牙利算法
相关推荐
九硕智慧建筑一体化厂家1 天前
DDC:看似普通的存在,在楼宇自控系统中却主宰智能建筑高效运行?
大数据·运维·人工智能·网络协议·制造·设计规范
天天睡大觉1 天前
SH/T 3009-2013 石油化工可燃性气体排放系统设计规范
设计规范·sh∕t 3009-2013·可燃性气体排放系统设计规范
电子科技圈3 天前
从工具到平台:如何化解跨架构时代的工程开发和管理难题
人工智能·设计模式·架构·编辑器·软件工程·软件构建·设计规范
xu_wenming3 天前
跨文件数据共享模式:通过静态全局变量与访问函数结合
嵌入式硬件·mcu·物联网·设计规范
电子科技圈3 天前
IAR扩展嵌入式开发平台,推出面向安全关键型应用的长期支持(LTS)服务
嵌入式硬件·安全·设计模式·软件工程·代码规范·设计规范·代码复审
infiniteWei17 天前
SKILL.md 触发机制与设计规范:避免“写了不触发”
java·前端·设计规范
码农垦荒笔记17 天前
OpenClaw 实战#05-5:第五层工程拆解——Skill 工程设计规范(硬干货版)
人工智能·agent·设计规范·openclaw
A懿轩A18 天前
【SpringBoot 快速开发】面向后端开发的 HTTP 协议详解:请求报文、响应码与常见设计规范
spring boot·http·设计规范
凌云拓界18 天前
前端开发的“平衡木”:在取舍之间找到最优解
前端·性能优化·架构·前端框架·代码规范·设计规范