算法:图的基本概念

图的分类

有向图

· 定义 :图中的边有方向性,用箭头表示。

· 表示:边 (A, B) 与 (B, A) 是两条不同的边。

无向图

· 定义 :图中的边没有方向。

· 表示 :边 (A, B) 与 (B, A) 是同一条边。

· 转换:可以将无向图中的一条边看作两条方向相反的有向边。

图的特殊结构

自环

· 定义:一条边从某个顶点出发,并指向其自身。

重边

· 定义:两个顶点之间存在两条或两条以上完全相同的边(在有向图中要求方向也相同)。

稠密图 vs 稀疏图

· 稀疏图 :边数远少于顶点数的平方(|E| << |V|²),即"少边多点"。

· 稠密图 :边数接近顶点数的平方(|E| ≈ |V|²),即"多边少点"。

· 这是一个相对概念,没有绝对的界限。

顶点与路径

顶点的度

· 无向图:与该顶点相关联的边的总数。

· 有向图:

· 入度 :指向该顶点的边的数目。

· 出度:从该顶点指出的边的数目。

路径

· 定义 :一个顶点序列,其中每相邻两个顶点之间都存在一条边。

· 回路/环:路径的起点和终点是同一个顶点。

路径长度

· 无权图 :路径上经过的边的数量。

· 带权图:路径上所有边的权值之和。

连通性

连通图与连通分量

· 连通图 :在无向图中,如果任意两个顶点之间都存在路径,则该图称为连通图。

· 非连通图 :不是连通图的无向图。

· 重要性质 :一个有 n 个顶点的图,如果边数小于 n-1,则它一定是非连通图。

· 连通分量 :无向图中的极大连通子图。

· "极大"意味着 :再也找不到另一个包含该子图且比它更大的连通子图。

· 一个图可以有多个连通分量。

连通分量数的计算

· 对于一个有 n 个顶点、m 条边且无环的森林结构,其连通分量数可以通过以下公式计算:

连通分量数 = n - m

生成树

· 定义 :一个连通图的生成树是包含其全部顶点的极小连通子图。

· 性质

  1. 包含原图所有 n 个顶点。
  2. 只有 n-1 条边。
  3. 是连通的,并且无环。
    · 关键特性
    · 极小性:在生成树中移除任意一条边都会导致图变得不连通。
    · 在生成树中添加任意一条边都会形成一个回路。
相关推荐
8Qi89 小时前
回文子串(Palindromic Substrings)—— 题解
算法·leetcode·职场和发展·动态规划
xskukuku9 小时前
使用VSCode配置C语言运行环境
c语言·ide·vscode
xuhaoyu_cpp_java11 小时前
项目学习(三)分页查询
java·经验分享·笔记·学习
想吃火锅100512 小时前
【leetcode】405.数字转换为十六进制数js
开发语言·javascript·ecmascript
专注VB编程开发20年12 小时前
AI 生成C# WinForm 窗体 = 目前就是垃圾
开发语言·人工智能·c#
cfm_291412 小时前
JVM GC垃圾回收初步了解
java·开发语言·jvm
~小先生~12 小时前
Python从入门到放弃(一)
开发语言·python
许彰午13 小时前
17_synchronized关键字深度解析
java·开发语言
z落落13 小时前
C# 泛型接口和泛型类+泛型约束
开发语言·c#
阿正的梦工坊13 小时前
【Rust】02-变量、不可变性与基础类型
开发语言·后端·rust