【数据结构】图的基本概念—无/有向图、权和网、完全图、路径与回路

article/2025/10/1 1:10:27

💟作者简介:大家好呀!我是路遥叶子,大家可以叫我叶子哦!❣️    
📝个人主页:【路遥叶子的博客】
🏆博主信息:四季轮换叶,一路招摇胜!

               专栏

        【安利Java零基础】

        【数据结构-Java语言描述】

🐋希望大家多多支持😘一起进步呀!~❤️
🌈若有帮助,还请【关注点赞收藏】,不行的话我再努力努力呀!💪
————————————————
🍁想寻找共同成长的小伙伴,请点击【Java全栈开发社区】

目录

🐋基本概念

        ❣️❣️什么是图?

        ❣️❣️顶点与边

        ❣️❣️无向图

        ❣️❣️有向图

        ❣️❣️权和网

         ❣️❣️完全图

        ❣️❣️稠密图和稀疏图

        ❣️❣️子图和生成子图

        ❣️❣️邻接点

        ❣️❣️顶点的度

        ❣️❣️路径与回路

如果文章对您有帮助,就拿起小手赶紧给博主点赞💚评论❤️收藏💙 一下吧!

 想要了解更多吗?没时间解释了,快来点一点!


​前言

​​提起数据结构,大家最熟悉的恐怕就是数组、链表、二叉树。而对于“图”这种数据结构,很多人只停留在“听说过”阶段。但是,图也是一种非常重要,而且跟现实息息相关的数据结构。

比如,我们在使用百度、高德地图做导航的时候,城市的地图就是一种图结构;当我们用微信、QQ等社交软件的时候,我们的好友关系网也是一种图结构。

图,是一种比树更为复杂的数据结构,树的节点之间是一对多的关系,并且存在父与子的层级划分,而图的顶点(注意在此不叫节点)之间是多对多的关系,并且所有顶点都是平等的,无所谓谁是父谁是子。

举个例子,微信中许许多多的用户组成了一个多对多的朋友关系网,这个关系网就是数据结构中的(Graph)。

​​让我们来详细了解一下图的底蕴吧!

💚❤️💙💚❤❤️💙💚❤️❤💙💚❤️💙❤💚❤️💙💚❤❤️💙💚❤️❤💙❤️💙💚❤


🐋基本概念

❣️❣️什么是图?

图,是一种用节点和边来表示相互关系的数学模型。

简单的说,点用边连起来就叫做图,严格意义上讲,图是一种数据结构,通常表示为:G=(v,E),其中,G表示一个图,v是图G中顶点的有穷非空集合,E是图G中边的有限集合。E(G)也可以为空集。若E(G)为空,则图G只有顶点而没有边。

其实,用句不是很严谨的话来说,图可以看成是没有任何限制的树(比如,可以有环状,可以有多种关系等等)。


❣️❣️顶点与边

  • 图是由顶点集边集组成。

    • 图:一般使用G表示

    • 顶点集:一般使用V表示,是一个有穷非空集合。由顶点组成,例如:u,v 等顶点。

    • 边集:一般使用E表示,是一个有穷集合,可以是空集。由组成,例如:e等边。

    • 记作:G = (V, E)

    • 零图:E可以是空集,此时图G只有顶点没有边,称为零图

  • 例如:

  •  零图:


在图中,最基本的单元是顶点,相当于树中的节点,顶点之间的关联关系,被称为

还有一些图中,顶点之间的关联并不是完全对称的,举个例子比如说微博,你的粉丝列表里有我,但我的粉丝列表里未必有你,类似于这种单方面关注的,顶点之间的边就有了方向的区分,这种带有方向的图称为有向图


❣️❣️无向图

  • 无向边:顶点u和顶点v,在没有方向的情况下形成的边,简称为边。

    • 记作:(u, v) = (v, u),也就是 (u, v) 和 (v, u) 是等同的。

  • 无向图(Undirected Graph):全部由无向边构成的图


❣️❣️有向图

  • 有向边:按照方向,从顶点u到顶点v形成的边,简称为

    • 记作:<u, v>、<v, u> ,也就是<u, v> 和 <v, u> 是不同的

    • 顶点u称为 始点,或弧尾

    • 顶点v称为 终点,或弧头

  • 有向图(Directed Graph)全部由有向边构成的图

💚❤️💙💚❤❤️💙💚❤️❤💙💚❤️💙❤💚❤️💙💚❤❤️💙💚❤️❤💙❤️💙💚❤❤️❤💙


❣️❣️权和网

在一些图中,每一条边并不是完全等同的,使得边具有权重,涉及到权重的图,称为带权图 。

权重与给定边之间的相关的成本。例如:航空公司航班图表,按城市之间的里程加权。

因此,综合有向无向、带权重不带权重,交叉来讲,图有带权重有向的、带权重无向的、不带权重的有向的、不带权重的无向的......

在某些实际场景中,图中的每条边(或弧)会赋予一个实数来表示一定的含义,这种与边(或弧)相匹配的实数被称为"权",而带权的图通常称为。如下图所示,就是一个网结构:

  • 权(Weight):在一个图中,每条边可以标上具有某种含义的数值,此数值称为该边上的权。

    • 通常权是一个非负实数

    • 权可以表示从一个顶点到另一个顶点的距离、时间或代价等含义。

  • 网(Network):边上标识权的图


 ❣️❣️完全图

在图论的数学领域,完全图是一个简单的无向图,其中每对不同的顶点之间都恰连有一条边相连。完整的有向图又是一个有向图,其中每对不同的顶点通过一对唯一的边缘(每个方向一个)连接。n个端点的完全图有n个端点以及n(n − 1) / 2条边,以Kn表示。它是(k − 1)-正则图。所有完全图都是它本身的团。

  •  无向完全图:每两个顶点之间都存在一条边。无向完全图是用n表示图中顶点数目的一种完全图,该图中每条边都是无方向的。在无向图中,如果任意两个顶点之间都存在边,则称该图为 无向完全图

  • 有向完全图:每两个顶点之间都存在着方向相反的两条边。有向完全图是指概述图中各边都有方向,且每两个顶点之间都有两条方向相反的边的连接图。

  • 完全图有n个顶点,e条边,两者关系:


❣️❣️稠密图和稀疏图

  •  稀疏图和稠密图:这两种图是相对存在的,即如果图中具有很少的边(或弧),此图就称为"稀疏图";反之,则称此图为"稠密图"。
  •  稀疏和稠密的判断条件是:e<nlogn,其中 e 表示图中边(或弧)的数量,n 表示图中顶点的数量。如果式子成立,则为稀疏图;反之为稠密图。

  •  n为顶点数,e为边数,两图的相关计算如下:


❣️❣️子图和生成子图

所有的顶点和边都属于图G的图称为G的子图。含有G的所有顶点的子图称为G的生成子图。

  • 子图(Subgraph)

    • 设有两个图 G=(V, E) 和 G'=(V', E'),若V‘是V的子集,即V’ ∈ V,并且E‘ 是 E的子集,即E’ ∈ E,则称 G‘ 为G的子图,记为 G’ ∈ G。

  • 生成子图(Spanning Subgraph)

    • 若G‘ 为G的子图,并且V’ = V,则称G‘ 为G的生成子图,即包含原图中所有顶点的子图。

  •  导出⼦图(Induced Subgraph)
    •  定义:导出⼦图G’,V’∈V,但对于V’中任⼀顶点,只要在原图G中有对应边,那么就要出现在E’中。

💚❤️💙💚❤❤️💙💚❤️❤💙💚❤️💙❤💚❤️💙💚❤❤️💙💚❤️❤💙❤️💙💚❤


❣️❣️邻接点

假若顶点v 和顶点w 之间存在一条边, 则称顶点v 和w 互为邻接点

在一个无向图中,若存在一条边(u,v),则称顶点u与v互为邻接点

  • 边(u,v)是顶点u和v关联的边

  • 顶点u和v是边(u,v)关联的顶点

  • 例如:以顶点1为端点的3条边是(0,1),(1,2),(1,4)顶点1的3个邻接点分别为 0,2,4

在一个有向图中,若存在一条弧<u,v>,则称顶点u邻接到v,顶点v邻接自u

  • 弧<u,v>和顶点u、v关联。

  • 例如:顶点v0有2条出边<v0,v1>,<v0,v2>,1条入边<v3,v0>,顶点v0邻接到v1和v2,顶点v0邻接自v3


❣️❣️顶点的度

  • 顶点的度(Degree):图中与该顶点相关联边的数目。顶点v的度记为 D(v)。

若一 个图有n个顶点和e条边,则该图所有顶点的度之和与边数满足如下关系:

  •  每条边关联两个顶点,对顶点的度贡献为2,所有全部顶点的度之和为所有边数的2倍 
  • 无向图顶点的度:以该顶点为一个端点的边的数目 ,即该顶点的边的数目

 有向图顶点的度

  • 入度(in degree):顶点v的入边数目,称为该顶点的入度,记为 ID(v)。

    • 以v为终点的弧的数目称为入度。

  • 出度(out degree):顶点v的出边数目,称为该顶点的出度,记为 OD(v)。

    • 以v为起点的弧的数目称为出度。

  • 顶点v的度:等于它的入度和出度之和。记作 D(v) = ID(v) + OD(v)


❣️❣️路径与回路

  •  无论是无向图还是有向图,从一个顶点到另一顶点途径的所有顶点组成的序列(包含这两个顶点),称为一条路径。如果路径中第一个顶点和最后一个顶点相同,则此路径称为"回路"(或"环")

并且,若路径中各顶点都不重复,此路径又被称为"简单路径";同样,若回路中的顶点互不重复,此回路被称为"简单回路"(或简单环)。

  •  拿下图来说,从 V1 存在一条路径还可以回到 V1,此 路径为 {V1,V3,V4,V1},这是一个回路(环),而且还是一个简单回路(简单环)。

在有向图中,每条路径或回路都是有方向的。

  • 路径(Path):在一个图中,路径是从顶点u到顶点v所经过的顶点序列

    u=v0,v1,...vm = v

  • 路径长度:路径上边的数目

  • 回路:第一个顶点和最后一个顶点相同的路径,称为回路或环

  • 初等路径:序列中顶点不重复出现的路径。

  • 初等回路:除了 第一个顶点和最后一个顶点 之外,其余顶点不重复出现的回路。

  • 实例1:

路 径 (v0, v2, v3, v1) 是初等路径,其路径长度为3。

路径 (v0, v2, v3, v0, v1) 不是初等路径,其路径长度为4。

路径 (v0, v2, v3, v0) 是初等回路,其路径长度为3。

网中的路径长度:在网中,从始点到终点的路径上各边的权值之和,称为路径长度

  • 实例2:顶点A顶点E的一条路径

    (A, B, D, E) --> 路径长度:10 + 7 + 2 = 19

    ❣️❣️💚❤️💙💚❤❤️💙💚❤️❤💙💚❤️💙❤💚❤️💙💚❤❤️💙💚❤️❤💙❤️💙💚❤


如果文章对您有帮助,就拿起小手赶紧给博主点赞💚评论❤️收藏💙 一下吧!

​​想要了解更多吗?没时间解释了,快来点一点!

路遥叶子的博客_CSDN博客-数据结构,安利Java零基础,spring领域博主路遥叶子擅长数据结构,安利Java零基础,spring,等方面的知识,路遥叶子关注spring,spring boot,python,架构,java,mysql领域.https://blog.csdn.net/zsy3757486?spm=1011.2266.3001.5343https://blog.csdn.net/zsy3757486?spm=1011.2266.3001.5343


http://chatgpt.dhexx.cn/article/sIanOvwY.shtml

相关文章

初次探图(图的概念--完全图、路径)

完全图 有向完全图 -边数n&#xff08;n-1) 无向完全图-边数n(n-1)/2 端点和邻接点 两顶点存在边相连称为端点&#xff0c; 两顶点存在有向边相连称为邻接点 子图 点集和边集都是另一个图的子集就称为子图 路径和路径长度 路径长度为边的数目 简单路径 针对于顶点来…

【离散数学】各类子图与完全图的定义详解

1. 各类子图&#xff1a; 2. 完全图&#xff1a; 注意上图中的俩条方向相反的有向边 无向完全图则是任意俩个结点间都有边相连&#xff0c;并不是只要可达即可

数据结构:有向完全图和无向完全图的边数

一、无向完全图 一个拥有n个结点的无向完全图的边数为&#xff1a;n(n−1)2 具体的解释&#xff1a; 比如我们有一个拥有4个结点的无向完全图&#xff0c; 我们首尾依次连接&#xff0c;共有4条边。 然后我们选择其他的两条边来连线。 又多出了2条边。一共有4 2 6条边。 我…

图论(2)完全图,顶点的度与度序列

目录 一、完全图 偶图&#xff08;双图或二部图&#xff09; &#xff08;2&#xff09;完全偶图 简单图的补图 自补图 二、顶点的度与图的度序列 顶点的度 图的度序列&#xff08;注意与图序列的区别&#xff09; 图序列 图的频序列及其性质 例题 一、完全图、偶图与补图 …

数据结构和算法:图

图&#xff08;Graph&#xff09;是一种较树更为复杂的非线性数据结构。在树形结构中&#xff0c;数据元素之间的关系是层次型的&#xff0c;树中除叶子以外的每一个数据元素可以和它下一层的多个数据元素存在关系&#xff1b;但除根元素以外的每一个数据元素只能且必须和它上一…

python散点图中如何添加拟合线并显示拟合方程与R方?

polyfit()函数可以使用最小二乘法将一些点拟合成一条曲线. numpy.polyfit(x, y, deg, rcondNone, fullFalse, wNone, covFalse) # x:要拟合点的横坐标 # y:要拟合点的纵坐标 # deg:自由度.例如:自由度为2,那么拟合出来的曲线就是二次函数,自由度是3,拟合出来的曲线就是3次函数…

R语言——方差分析

一、方差分析的基本概念 方差分析是在20世纪20年代发展起来的一种统计方法&#xff0c;它是由英国统计学家费希尔在进行实验设计时为解释实验数据而首先引入的。 从形式上看&#xff0c;方差分析是比较多个总体的均值是否相等&#xff1b;但是其本质上是研究变量之间的相互关系…

相关度R方

相关度 这里的相关度使用皮尔逊相关性系数&#xff0c;计算公式为&#xff1a; 皮尔逊相关性系数可以从某个角度用来衡量预测值与实际值的相关性关系。 取值范围为[-1,1]&#xff0c;数值为正表示为正相关&#xff0c;为负表示为负相关。绝对值越大表示相关性越强。 使用scip…

一文搞定R语言拟合p值、R方...

R:ggplot2拟合&#xff0c;我推荐geom_smooth绘制拟合和ggpmisc添加统计信息。 几行代码就可以搞定了&#xff0c;对新手非常友好。 线性拟合 library(tidyverse) library(readxl) library(ggplot2) library(ggpmisc)repeat1_rawgrassland <- read_excel("D:/OneDri…

R语言在逻辑回归中求R square R方

并非所有结果/因变量都可以使用线性回归进行合理建模。也许第二种最常见的回归模型是逻辑回归&#xff0c;它适用于二元结果数据。最近我们被客户要求撰写关于逻辑回归的研究报告&#xff0c;包括一些图形和统计输出。如何计算逻辑回归模型的R平方&#xff1f; 相关视频&…

Regression 中的 R方

最近在学习ML,一直看到这R方,明白什么意思,但是不知道怎么算出来的,今天看sklearn文档的时候偶然看到了,记录下 简而言之,他的值表示该系列数据是否适合该Regression 算法, 得分越靠近1越适合. 总结来说就是, 1 减去 ( 所有 ( ( 真实值 减去 预测值 ) 的平方 ) 和 除以 所有 (…

基于MATLAB的R方计算

R方计算原理 什么是R方 R-square是你以后很多数据模型都需要用到的统计量&#xff0c;计量模型什么的&#xff0c;还有回归系数显著性检验&#xff0c;F检验&#xff0c;德斌沃森统计量检验。利用数据拟合一个模型时&#xff0c;模型肯定存在误差&#xff0c;那么回归方程对观…

数据科学 | 如何解释线性回归的R方

R方&#xff0c;即R-Squared&#xff0c;常用来衡量线性回归的拟合度。相关性“r"衡量两个变量间的相关性&#xff0c;相关性接近1表示变量间具有很强的正相关性&#xff0c;接近-1表示变量间具有很强的负相关性&#xff0c;接近0表示变量间没有太多的关系。R方与相关性”…

什么是R方?这6张图会让你终身难忘~

什么是R2 &#xff1f; 在回归模型中&#xff0c;因变量&#xff08;y&#xff09;总的方差&#xff08;信息&#xff09;可以被称作总平方和&#xff08;Total sum of squares&#xff0c;TSS&#xff09;&#xff0c;它由两部分组成[1]&#xff1a; 1. 模型可以解释的那部分信…

贝叶斯相关公式(Bayes)

这里只是记录一下&#xff0c;非常推荐马同学高等数学,文末有原文.点击这里看里面的例一应该是理解贝叶斯公式最好的例子 ,如果你稍微有一些基础&#xff0c;我觉得文末第二个链接中的例一更加适合你 代数推导 1. 贝叶斯公式 是根据条件概率推导的 P(A|B)P(AB)P(B)P(B|A)…

贝叶斯模型及其应用总结

本文参考整理众多资料而成。 http://blog.csdn.net/huaxi1902/article/details/24140061 http://mindhacks.cn/2008/09/21/the-magical-bayesian-method/ http://www.ruanyifeng.com/blog/2011/08/bayesian_inference_part_one.html http://www.ruanyifeng.com/blog/2011/08…

贝叶斯预测模型 (数学原理与推导)

1. 方差的两种计算方法 对于方差计算的一个重要结论&#xff1a; 2. 联合概率分布-条件概率分布 当然&#xff0c;利用联合概率分布也很容易推出边缘概率分布&#xff1b;只需要对其他变量进行全积分即可&#xff01; 条件概率分布直观想象还是有难度的&#xff0c;很多时候我…

朴素贝叶斯算法 — 超详细公式讲解+代码实例

本文收录于Github仓库&#xff0c;欢迎前来 star 呀~ https://github.com/Veal98/cs-wiki在线阅读地址/更好的阅读体验请移步&#xff1a;cswiki.top &#x1f454; 朴素贝叶斯算法 Naive Bayes &#x1f4a1; 思维导图 1. 朴素贝叶斯法概述 朴素贝叶斯法是基于贝叶斯定理与…

贝叶斯定理

贝叶斯定理 通常&#xff0c;事件A在事件B的条件下的概率&#xff0c;与事件B在事件A的条件下的概率是不一样的&#xff1b;然而&#xff0c;这两者是有确定的关系&#xff0c;贝叶斯法则就是这种关系的陈述。 贝叶斯法则又被称为贝叶斯定理、贝叶斯规则&#xff0c;是指概率统…

dbus 学习

和菜鸟一起学linux之DBUS基础学习记录 D-Bus三层架构 D-Bus是一个为应用程序间通信的消息总线系统, 用于进程之间的通信。它是个3层架构的IPC 系统&#xff0c;包括&#xff1a; 1、函数库libdbus &#xff0c;用于两个应用程序互相联系和交互消息。 2、一个基于libdbus构造…