数据结构-图的相关定义

图-多对多

Graph(V,E),图(顶点Vertex,边Edge)

图可以没有边,只有一个顶点也叫图,但是单独的一条边,或者一个顶点连一条边,不能叫图

有向图:

无向图:

完全图:任意两个顶点都有一条边相连

无向完全图:n个顶点,n(n-1)/2条边

有向图:n个顶点,n(n-1)条边

稀疏图:有很少边或弧的图(e<nlogn,以2为底)
稠密图:有较多边或弧的图
网:边 / 弧带权的图


邻接: 有边 / 弧相连的两个顶点之间的关系
存在(vi, vj),则称vi和vj互为邻接点--->无向
存在<vi, vj>,则称vi邻接到vj,vj邻接于vi--->有向


关联 (依附):边 / 弧与顶点之间的关系
存在(vi, vj)、<vi, vj>, 则称该边 / 弧关联于vi和vj

顶点的度:与该顶点相关联的边的数目,记为TD(v)

顶点的度:在无向图中,顶点的度数之和等于边数的2倍

在有向图中,所有顶点的出度之和 = 入度之和 = 弧的数量

有向图中, 顶点的度等于该顶点的入度与出度之和

顶点v的入度是以v为终点的有向边的条数, 记作ID(v) input

顶点v的出度是以v为始点的有向边的条数, 记作OD(v) output

用例子分析加深理解:

下图中V0有两条边,所以度为2,V1有三条边,度为3,以此类推

下图中,V0出度的有两条(V0-->V1,V0-->V2),入度有一条(V3-->V0),所以度是2+1=3

如果仅有一个顶点的入度为0,其余顶点入度均为1,是什么形状?

答案:树

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

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

回路(环):第一个顶点和最后一个顶点相同的路径

简单路径:除路径起点和终点可以相同外,其余顶点均不相同的路径

简单回路(简单环):除路径起点和终点相同外,其余顶点均不相同的路径

连通图--无向

强连通图--有向

连通图是针对无向图的,而强连通是针对有向图的,这两者的定义均是在图中,任取两个顶点u、v,均存在u到v的路径

我们那几张图分析一下:

上图中,左图是连通图,我们不难发现,任取两个顶点,他们之间是有路径可以连接的,比如V0到V2,可以是V0-->V1-->V2的路径

右图是非连通图,V1是到不了V4的等等

上图中,左图是强连通图,任取两个顶点,都有路径能往返

而右图是非强连通,我们发现,V1是到不了V0和V3的

子图:a子图的顶点包含于b子图的顶点,同时a子图的边也包含于b子图的边,我们称a是b的子图

很显然,b、c是a的子图

有向图G 的极大强连通子图称为G的强连通分量

极大强连通子图意思是:该子图是G的强连通子图,将D的任何不在该子图中的顶点加入,子图不再是强连通的

下图很明显是一个非强连通图,因为V1到不了V0,但是如果把V1单独拿开,把V0.V2,V3构成的强连通图也单独拿开,就会变成图二

极小连通子图:该子图是G 的连通子图,在该子图中删除任何一条边,子图不再连通

生成树:包含无向图G 所有顶点的极小连通子图

在无向连通图中,极小连通子图实际上就是该图的生成树 

生成森林:对非连通图,由各个连通分量的生成树的集合

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

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

相关文章

B 站搜一搜关键词优化:精准触达用户的流量密码

在 B 站内容生态中&#xff0c;搜一搜功能是用户主动获取信息的重要渠道&#xff0c;而关键词优化则是让你的视频在搜索结果中脱颖而出的关键。通过合理优化关键词&#xff0c;能提升视频曝光率&#xff0c;吸引精准流量&#xff0c;为账号发展注入强劲动力。以下从关键词挖掘、…

Python爬虫实战:研究purl库相关技术

1. 引言 随着互联网数据量的爆炸式增长,网络爬虫已成为数据采集、舆情分析和学术研究的重要工具。Python 凭借其丰富的库生态和简洁语法,成为开发爬虫的首选语言。本文提出的爬虫系统结合 requests 进行 HTTP 请求、BeautifulSoup 解析 HTML,并创新性地引入 purl 库处理复杂…

OpenCV 学习探秘之三:从图像读取到特征识别,再到机器学习等函数接口的全面实战应用与解析

一、引言 1.1介绍 OpenCV&#xff08;Open Source Computer Vision Library&#xff09;是一个功能强大的开源计算机视觉库&#xff0c;广泛应用于图像和视频处理、目标检测、机器学习等领域。本文将全面解析 OpenCV 中常用的函数接口&#xff0c;帮助读者快速掌握 OpenCV 的…

Umi从零搭建Ant Design Pro项目(3)集成 openapi 插件

1. 安装插件 pnpm add umijs/max-plugin-openapi pnpm add swagger-ui-dist如果不安装swagger-ui-dist&#xff0c;不会影响运行。但会报错。 2.配置文件export default defineConfig({// umi插件配置plugins: [umijs/max-plugin-openapi],// openAPI配置openAPI: {requestLibP…

Flutter开发实战之状态管理深入解析

第4章:状态管理深入解析 前言 想象一下,你正在开发一个购物车应用。用户在商品页面添加商品,然后去购物车页面查看,最后到结算页面付款。在这个过程中,购物车的数据需要在多个页面之间保持同步和一致。这就是状态管理要解决的核心问题。 状态管理是Flutter开发中最重要…

组件化(一):重新思考“组件”:状态、视图和逻辑的“最佳”分离实践

组件化(一)&#xff1a;重新思考“组件”&#xff1a;状态、视图和逻辑的“最佳”分离实践 引子&#xff1a;组件的“内忧”与“外患” 至此&#xff0c;我们的前端内功修炼之旅已经硕果累累。我们掌握了组件化的架构思想&#xff0c;拥有了高效的渲染引擎&#xff0c;还探索…

【Redis】Redis 协议与连接

一、Redis 协议 1.1 RESP RESP 是 Redis 客户端与服务器之间的通信协议&#xff0c;采用文本格式&#xff08;基于 ASCII 字符&#xff09;&#xff0c;支持多种数据类型的序列化和反序列化 RESP 通过首字符区分数据类型&#xff0c;主要支持 5 种类型&#xff1a; 类型首字…

Android通知(Notification)全面解析:从基础到高级应用

一、Android通知概述通知(Notification)是Android系统中用于在应用之外向用户传递信息的重要机制。当应用需要告知用户某些事件或信息时&#xff0c;可以通过通知在状态栏显示图标&#xff0c;用户下拉通知栏即可查看详细信息。这种机制几乎被所有现代应用采用&#xff0c;用于…

VUE3(四)、组件通信

1、props作用&#xff1a;子组件之间的通信。父传子&#xff1a;属性值的非函数。子传父&#xff1a;属性值是函数。父组件&#xff1a;<template><div>{{ childeData }}</div>——————————————————————————————<child :pare…

【数据结构与算法】数据结构初阶:详解二叉树(六)——二叉树应用:二叉树选择题

&#x1f525;个人主页&#xff1a;艾莉丝努力练剑 ❄专栏传送门&#xff1a;《C语言》、《数据结构与算法》、C语言刷题12天IO强训、LeetCode代码强化刷题 &#x1f349;学习方向&#xff1a;C/C方向 ⭐️人生格言&#xff1a;为天地立心&#xff0c;为生民立命&#xff0c;为…

Android广播实验

【实验目的】了解使用Intent进行组件通信的原理&#xff1b;了解Intent过滤器的原理和匹配机制&#xff1b;掌握发送和接收广播的方法【实验内容】任务1、普通广播&#xff1b;任务2、系统广播&#xff1b;任务3、有序广播&#xff1b;【实验要求】1、练习使用静态方法和动态方…

html转word下载

一、插件使用//转html为wordnpm i html-docx-js //保存文件到本地npm i file-saver 注&#xff1a;vite 项目使用esm模式会报错&#xff0c;with方法错误&#xff0c;修改如下&#xff1a;//直接安装修复版本npm i html-docx-fixed二、封装导出 exportWord.jsimport htmlDocx f…

北方公司面试记录

避免被开盒&#xff0c;先称之为“北方公司”&#xff0c;有确定结果后再更名。 先说流程&#xff0c;线下面试&#xff0c;时间非常急&#xff0c;下午两点钟面试&#xff0c;中午十二点打电话让我去&#xff0c;带两份纸质简历。 和一般的菌工单位一样&#xff0c;先在传达室…

linux——ps命令

PPID PID PGID SID TTY TPGID STAT UID TIME COMMAND0 1 1 1 ? -1 Ss 0 0:01 /usr/lib/systemd/systemd1 123 123 123 ? -1 S 0 0:00 /usr/sbin/sshd -D123 456 456 456 pts/0 456 R 10…

C#.NET 依赖注入详解

一、是什么 在 C#.NET 中&#xff0c;依赖注入&#xff08;Dependency Injection&#xff0c;简称 DI&#xff09; 是一种设计模式&#xff0c;用于实现控制反转&#xff08;Inversion of Control&#xff0c;IoC&#xff09;&#xff0c;以降低代码耦合、提高可测试性和可维护…

Vue监视数据的原理和set()的使用

在 Vue 中&#xff0c;Vue.set()&#xff08;或 this.$set()&#xff09;是用于解决响应式数据更新检测的重要方法&#xff0c;其底层与 Vue 的数据监视原理紧密相关。以下从使用场景和实现原理两方面详细说明&#xff1a;一、Vue.set () 的使用场景与用法1. 为什么需要 Vue.se…

在 Vue 中,如何在回调函数中正确使用 this?

在 Vue 组件中&#xff0c;this 指向当前组件实例&#xff0c;但在回调函数&#xff08;如定时器、异步请求、事件监听等&#xff09;中&#xff0c;this 的指向可能会丢失或改变&#xff0c;导致无法正确访问组件的属性和方法。以下是在回调函数中正确使用 this 的几种常见方式…

第4章唯一ID生成器——4.4 基于数据库的自增主键的趋势递增的唯一ID

基于数据库的自增主键也可以生成趋势递增的唯一 ID&#xff0c;且由于唯一ID不与时间戳关联&#xff0c;所以不会受到时钟回拨问题的影响。 4.4.1 分库分表架构 数据库一般都支持设置自增主键的初始值和自增步长&#xff0c;以MySQL为例&#xff0c;自增主键的自增步长由auto_i…

设计模式:Memento 模式详解

Memento 模式详解Memento&#xff08;备忘录&#xff09;模式是一种行为型设计模式&#xff0c;用于在不破坏封装性的前提下&#xff0c;捕获并外部化一个对象的内部状态&#xff0c;以便在之后能够将该对象恢复到原先保存的状态。它广泛应用于需要实现撤销&#xff08;Undo&am…

数据结构(6)单链表算法题(下)

一、环形链表Ⅰ 1、题目描述 https://leetcode.cn/problems/linked-list-cycle 2、算法分析 思路&#xff1a;快慢指针 根据上图所示的流程&#xff0c;我们可以推测出这样一个结论&#xff1a;若链表带环&#xff0c;快慢指针一定会相遇。 那么&#xff0c;这个猜测是否正…