【数据结构】6.1 图的基本概念和术语

news2024/12/29 16:08:24

文章目录

  • 前言
  • 6.1 图的定义和术语

前言

是一种比线性表和树更为复杂的数据结构。

  • 线性结构中,结点之间的关系属于一个对一个;数据元素之间有着线性关系,每个数据元素只有一个直接前趋和一个直接后继,
  • 树形结构中,结点之间的关系属于一个对多个。数据元素之间有着明显的层次关系,并且每一层中的数据元素可能和下一层中的多个元素(即其孩子结点)相关,但只能和上一层中一个元素(即其双亲结点)相关;
  • 而在图结构中,结点之间的关系属于多个对多个。结点之间的关系可以是任意的,图中任意两个数据元素之间都可能相关

在这里插入图片描述

6.1 图的定义和术语

  1. :G = (V,E) —— Graph = (Vertex,Edge)

    • V:顶点(数据元素)的有穷非空结合,一个图当中必须要有顶点;
    • E:边的有穷集合(图里面可以只有点,没有边)。
  2. 无向图:图中的每条边都是无方向的。

    • G1 这个有向图就是由,V1、V2、V3、V4 这四个顶点,以及四条边组成的,每条边都是有方向的

在这里插入图片描述

  1. 有向图:图中的每条边都是有方向的。
    • G2 这个无向图就是由 V1 V2 V3 V4 V5 五个顶点,以及 7 条边构成的,每条边都是无方向的

在这里插入图片描述

  1. 完全图:任意两个顶点都有一条边相连。
    • 无向完全图中:如果有 n 个顶点的话,则必须有 n(n-1)/2 条边
    • 有向完全图中:如果有 n 个顶点的话,则必须有 n(n-1) 条边

在这里插入图片描述

  1. 稀疏图:有很少边或弧的图(e < nlogn,e < 顶点数 X 顶点数的对数)。

    • 弧:有向图那种带箭头的边称作弧,无向图的则称之为边。
  2. 稠密图:有较多边或弧的图。

  3. :边 / 弧 带权的图。

    • 比若说有两个顶点,表示两个地点,这两个地点之间有条路,这条路十公里,这个 十 就是权。
    • 给 边/权 加的这个有特殊意义的值就为权
      在这里插入图片描述
  4. 邻接:两个顶点之间有 边 / 弧 连在一起,则称为邻接,反之不邻接。

    • 存在(Vi,Vj),则称 Vi 和 Vj 互为邻接点。(Vi,Vj)表示 Vi 到 Vj 之间有一条边。
    • 存在 <Vi,Vj>,则称 Vi 邻接到 Vj,Vj 邻接于 Vi。<Vi,Vj>表示在有向图中存在一条从 VI 到 Vj 的弧。
  5. 关联(依附):边 / 弧 与顶点之间的关系。

    • 存在 (Vi,Vj) / <Vi,Vj>,则称该 边 / 弧 关联于 Vi 和 Vj。
  6. 顶点的度:与该顶点向关联的边的数目,记为 TD(v)

    • 有向图中,顶点的度等于该顶点的入度出度之和。
      • 因为有向图的边是有方向的,所以存在入度出度之分。
    • 顶点 V 的入度是以 V 为终点的右向边的条数,记作 ID(V)
    • 顶点 V 的出度是以 V 为起点的有向边的条数,记作 OD(V)

这两条边对于 V1 来说,上面的为出度,下面的为入度。
在这里插入图片描述
在这里插入图片描述

:当有向图中仅一个顶点的入度为 0,其余顶点的入度均为 1,此时是何形状?
:是树!而且是一棵有向树

在这里插入图片描述

  1. 路径:接续的边构成的顶点序列。

在这里插入图片描述

  1. 路径长度:路径上 边或弧 的 数目或权值 之和。

在这里插入图片描述
在这里插入图片描述

  1. 回路(环):第一个顶点和最后一个顶点的路径是相同的。
  2. 简单路径:除了路径起点路径终点可以相同外,其余顶点均不相同的路径。
  3. 简单回路(简单环):除了起点和终点相同的路径之外,其余顶点均不相同的路径。

在这里插入图片描述

  1. 连通图(强连通图):无向图称为连通图,有向图称为强连通图。
    • 在无(有)向图 G = (V,{E}) 中,若任意两个顶点 v、u 之间都存在从 v 到 u 的路径,则称 G 是 连通图(强连通图)。

随便两个顶点之间都可以找到路径称为连通图,如:从V0到V4,可以走V0V1V4这条路,也可以走V0V3V2V4这条路。非连通图从V0就走不到V5了。

![在这里

强连通图的每个顶点必然是有出度和如入度的,非强连通图则不是。

在这里插入图片描述

  1. 权和网

    • 图中 边或弧 所具有的相关数称为。表明从一个顶点到另一个顶点的距离或耗费。
    • 带权的图称为
  2. 子图

    • 假设有两个图 G = (V,{E})、G1 = (V1,{E1}),若 V1 属于 V,E1 属于 E,则称 G1 是 G 的子图
    • V 是顶点,E 是边。

在这里插入图片描述

  1. 连通分量(强连通分量)
    • 无向图 G 的极大连通子图称为 G 的连通分量
      • 极大连通子图意思是:顶点的数目在这个子图当中已经达到最大,再加入一个顶点,这个子图就不再是连通图了。
    • 有向图 G 的极大强连通子图称为 G 的墙连通分量
      • 极大强连通子图的意思是: 顶点数目已经达到最大不能再加了,否则就不再是强连通图了。

在连通分量左边的连通子图中,如果再加入 V4或者V5,都会让左边的连通子图不再连通。

在这里插入图片描述

可以将左边的这个非强连通图分成两个连通图。

在这里插入图片描述

  1. 极小连通子图:顶点的数目在这个连通子图中的数目已经达到最小,如果在该图中删除任何一个顶点,则子图不再连通。
  2. 生成树:包含无向图 G 所有顶点的极小连通子图。
  3. 生成森林:对非连通图,由各个连通分量的生成树的集合。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/167503.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

算法设计与分析课程

算法的由来 算法的定义 算法的定义&#xff1a;给定计算问题&#xff0c;算法是一系列良定义的计算步骤&#xff0c;逐一执行计算步骤可得到预期的输出。 良定义&#xff1a;定义明确无歧义 计算步骤&#xff1a;计算机可以实现的指令 有了良定义的计算步骤&#xff0c;计算机就…

Java基础篇01-运算符的使用

01| Java中的数据类型 ) 1. 数值型&#xff1a; 序号类型空间占用说明最小值最大值默认值优缺点对比举例1byte8位有符号整数-128(-2^7)127 (2^7-1)0byte 类型用在大型数组中节约空间&#xff0c;主要代替整数&#xff0c;因为 byte 变量占用的空间只有 int 类型的四分之一by…

6、Denoising Diffusion Probabilistic Models(扩散模型)

简介 主页&#xff1a;https://hojonathanho.github.io/diffusion/ 扩散模型 &#xff08;diffusion models&#xff09;是深度生成模型中新的SOTA。 扩散模型在图片生成任务中超越了原SOTA&#xff1a;GAN&#xff0c;并且在诸多应用领域都有出色的表现&#xff0c;如计算机…

【docker概念和实践 1】 基本概念和组成原理

一、说明 初学Docker就一个字&#xff1a;乱&#xff01;这是因为Docker是一个庞大体系&#xff0c;初学时不了解全貌&#xff0c;处于“盲人摸象”状态&#xff0c;因不能通晓要领&#xff0c;学了一点&#xff0c;过后就忘了。而了解Docker全貌并非易事&#xff0c;官方文档也…

前端学习记录-Javascript

pink JS基础语法JavaScript核心教程阮一峰JS基础 JS基础语法 初识JS JS三种书写位置&#xff1a;行内、内嵌、引入式。单行注释 ctrl/ 多行注释 shift alt a输入输出语句 声明变量 var age;变量命名规范&#xff1a;字母、数字、下划线、美元符号组成&#xff0c;区分大小写…

质量体系搭建

测试团队的发展历程 初期阶段 特点&#xff1a;提供“保姆式”服务&#xff0c;以发现BUG为主要任务。 工作主要&#xff1a;以功能测试、兼容行测试为主的手工测试&#xff0c;每天进行大量的、重复性的工作&#xff0c;即便如此依然会有遗漏。刚起步的测试团队基本处于这个阶…

LeetCode分类刷题----哈希表篇

哈希表哈希表1.有效的字母异位词242.有效的字母异位词383.赎金信49.字母异位词分组438.找到字符串中所有字母异位词2.两个数组的交集349.两个数组的交集350.两个数组的交集||3.快乐数202202.快乐数4.两数之和1.两数之和5.四数相加454.四数相加||6.三数之和15.三数之和7.四数之和…

ARM 实时时钟 RTC

一、何为实时时钟 (1) real time clock&#xff0c;真实时间&#xff0c;就是所谓的xx年x月x日x时x分x秒星期x. (2) RTC是 SoC 中一个内部外设&#xff0c;RTC 有自己独立的晶振提供 RTC 时钟源&#xff08;32.768KHz&#xff09;&#xff0c;内部有一些寄存器用来记录时间&am…

微信小程序登陆,后端接口实现 - springboot

登录流程 1、通过调用wx.login获取登录凭证&#xff08;code&#xff09; uni-app通过调用uni.login 2、前端将code提交给服务器&#xff0c;springboot访问 auth.code2Session&#xff0c;使用 code 换取 openid、unionid、session_key 等信息。 3、完成登录操作&#xff0…

数学计算-C语言实现

任务描述 计算如下公式的值: 其中π=3.1415926 本关知识 C语言常用数学函数及其用法 在使用C语言数学函数时候,应该在该源文件中使用以下命令行包含库文件: #include <math.h> 或 #include "math.h" 本题中用到的C语言数学函数如下: abs函数: 求整型…

Pytorch模型自定义数据集训练流程

文章目录Pytorch模型自定义数据集训练流程1、任务描述2、导入各种需要用到的包3、分割数据集4、将数据转成pytorch标准的DataLoader输入格式5、导入预训练模型&#xff0c;并修改分类层6、开始模型训练7、利用训好的模型做预测Pytorch模型自定义数据集训练流程 我们以kaggle竞…

交互与前端20 APIFunc.DataBase监控

说明 APIFunc.DataBase的第一版有一个监控一直在做agg,造成数据库的无谓消耗,所以一定得修补。在修补的同时,做了一些主要的修改: 1 【自增ID】给Mongo的In和Out增加了数据的自动编号和随机数生成。2 【使用缓存】通过Redis缓存,极大的的减轻了Mongo(主库)的负担这样,使得…

Kruskal重构树学习笔记(C++)

Kruskal重构树学习笔记 提示&#xff1a; 学习Kruskal重构树之前建议先了解一下Kruskal算法&#xff0c;虽然不了解这个影响不会很大 但一定要了解一下并查集的算法 接下来如果想要应用Kruskal重构树&#xff0c;一定要了解一下LCA算法 什么是Kruskal重构树 这里先简单说…

exec函数族详解

文章目录exec介绍exec族execl函数execlp函数execv函数exec介绍 通过命令查看帮助&#xff1a;man 3 exec exec 函数族的作用是根据指定的文件名找到可执行文件&#xff0c;并用它来取代调用进程的内容&#xff0c;换句话说&#xff0c;就是在调用进程内部执行一个可执行文件。…

基于多线程版本的定时器

定时器 1)咱们前面学习过的阻塞队列&#xff0c;相比于普通的队列线程安全&#xff0c;相比于普通的队列起到一个更好的阻塞效果 2)虽然使用阻塞队列&#xff0c;可以达到销峰填谷这样的一个效果&#xff0c;但是峰值中有大量的数据涌入到队列中&#xff0c;如果后续的服务器消…

教程:Flutter 和 Rust混合编程,使用flutter_rust_bridge自动生成ffi代码

实践环境&#xff1a;Arch Linuxflutter_rust_bridge官方文档Flutter环境配置教程 | Rust环境配置教程记录使用flutter_rust_bridge遇到的一些坑。假设已经我们配置了Fluuter与Rust环境现在直接使用flutter_rust_bridge模板创建自己的项目运行&#xff1a;git clone https://gi…

W13Scan 扫描器挖掘漏洞实践

一、背景 这段时间总想捣鼓扫描器&#xff0c;发现自己的一些想法很多前辈已经做了东西&#xff0c;让我有点小沮丧同时也有点小兴奋&#xff0c;说明思路是对的&#xff0c;我准备站在巨人的肩膀去二次开发&#xff0c;加入一些自己的想法&#xff0c;从freebuf中看到W13Scan…

进程调度模块

目录 1.进程介绍 2.进程调度 2.1.进程状态 2.2.进程调度函数 ---schedule 2.3.进程切换函数 ---switch_to&#xff08;&#xff09; 1.进程介绍 在进程模块里面&#xff0c;我们知道了进程就是一个task_struct的结构体&#xff0c;里面含有进程的各种信息。进程存放在进程…

AppScan被动手动探索扫描

系列文章 AppScan介绍和安装 AppScan 扫描web应用程序 第三节-AppScan被动手动探索扫描 被动式扫描&#xff1a;浏览器代理到AppScan&#xff0c;然后进行手工操作&#xff0c;探索产生出的流量给AppScan进行扫描。 他的优点是&#xff1a;扫描足够精准&#xff0c;覆盖率更…

注册中心和负载均衡(黑马SpringCloud笔记)

注册中心和负载均衡 目录注册中心和负载均衡一、服务远程调用1. RestTemplate2. 服务调用关系3. 远程调用的问题二、注册中心1. Eureka注册中心1.1 搭建Eureka注册中心1.2 服务注册1.3 服务拉取1.4 小结2. nacos注册中心2.1Nacos搭建2.2 服务注册2.3 服务拉取2.4 服务分级存储模…