算法:图的基本概念

图的分类

有向图

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

· 表示:边 (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. 是连通的,并且无环。
    · 关键特性 :
    · 极小性:在生成树中移除任意一条边都会导致图变得不连通。
    · 在生成树中添加任意一条边都会形成一个回路。
相关推荐
飞Link8 小时前
什么是 AirSim?一文读懂无人机仿真平台
python·算法·无人机
学逆向的8 小时前
C 堆区内存管理
c语言·开发语言·网络安全
huoyueyi8 小时前
《融天AI-APP从0到1开发实录》
开发语言·lua
zhangrelay9 小时前
新版|-|单片机原理与接口技术-2026持续改进优化-从MEGA2560-ESP32与Wokwi到ROS2-Lyrical与具身智能栈
笔记·单片机·嵌入式硬件·学习
Jimmy9 小时前
深夜突袭:我们的午夜战场
笔记·产品·电子书
xiaoye-duck10 小时前
《C++ 工具库实战》gflags 命令行参数解析库详解
c++·第三方库
OpenAnolis小助手10 小时前
PHP 两个严重漏洞曝光,龙蜥社区 24 小时完成 3 版本修复
开发语言·操作系统·php·龙蜥社区
一去不复返的通信er10 小时前
贪心算法-合并区间(LeetCode 56)
算法·leetcode·贪心算法
狂奔的sherry11 小时前
C++ 宏生成访问函数的代价:访问权限、调试和类型检查
c++·宏·编译·预处理器·类型检查
阿尼卡~11 小时前
VS Code 配置 C 语言开发环境(Windows 10/11):从 GCC 安装到运行、断点调试,一篇搞定
c语言·开发语言·windows