数据结构-----图(Graph)论必知必会知识

news2024/11/7 18:07:31

 目录

前言

图的基本概念

1.什么是图?

2 .图的相关术语

3 .有向图和无向图

4.简单图和多重图

5.连通图、强连通图、非连通图

 6.权与网

7.子图和(强)连通分量

 8.生成树和生成森林


前言

        今天我们学习一种新的数据结构-----图,大家在日常生活中经常都会跟“图”打交道,比如说地图,电路图等等……,那我们都会发现图都有一个共同特点,那就是图里面的路径是没有规律的,一个地点到另一个地点的路径是不唯一的,同样的在数据结构当中图也是这样子的,那下面就一起进入到图的学习当中吧~

图的基本概念

1.什么是图?

        前面总结了“树”这种数据结构,而这篇博客总结的是更为复杂的一种数据结构:图(graph),它表明了物件与物件之间的“多对多”的一种复杂关系。图包含了两个基本元素:顶点(vertex, 简称V)和边(edge,简称E)。

 定义:结点集合V={v1,v2,v3,v4……}和连接节点的边集合 E={e1,e2,e3,e4……}组成的二元组G=<V,E> 称作为图(graph)。图中节点集合的基数n称作为图的阶数(order)。图G<V,E>称作为n阶图或者(n,m)图。

2 .图的相关术语

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

 

稀疏图: 有很少边或弧的图 (e<nlogn)
稠密图:有较多边或弧的图。
网:边/弧带权的图。
邻接:有边/弧相连的两个顶点之间的关系
        存在(vi vj),则称vi和vj;互为邻接点;
        存在<vi,vj>,则称vi邻接到vj, vi邻接于vj

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

顶点的度: 与该顶点相关联的边的数目,记为TD(v)在有向图中,顶点的度等于该顶点的入度与出度之和。

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

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

路径:接续的边构成的顶点序列。
路径长度: 路径上边或弧的数目/权值之和。回路(环): 第一个顶点和最后一个顶点相同的路径简单路径: 除路径起点和终点可以相同外,其余顶点均不相同的路径

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

3 .有向图和无向图

   如果给图的每条边规定一个方向,那么得到的图称为有向图。在有向图中,从一个顶点出发的边数称为该点的出度,而指向一个顶点的边数称为该点的入度。相反,边没有方向的图称为无向图

1.有向图的写法表示:

2.无向图的写法表示:

4.简单图和多重图

定义:含有平行边的图叫做多重图

            既不含平行边,又不含有自换的图叫做简单图 

多重图: 简单图:

5.连通图、强连通图、非连通图

连通图:在无向图G=( V,E) )中,若对任何两个顶点 v、u都存在从v 到 u 的路径,则称G是连通图

强连通图:在有向图G=( V,E) )中,若对任何两个顶点 v、u都存在从v 到 u 的路径,则称G是强连通图

区分,无向图满足连通性,就叫做连通图,有向图叫做强连通图

非连通图:跟连通图反过来,存在一个节点v无法到达另一个节点u的图,就称作为非连通图 

 6.权与网

权与网

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

网,如图所示:

7.子图和(强)连通分量

子图

下图中,b和c哪个是a的子图? 答案:c 

连通分量:无向图G 的极大连通子图称为G的连通分量

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

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

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

补充

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

 8.生成树和生成森林

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

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

以上就是本期的全部内容了,如果你学过离散数学就都学过这些的,这些图论的知识点很重要的,一定要会哦!下一期我们就讲图的存储结构。

分享一张壁纸: 

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

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

相关文章

KingBase用户与角色及对象访问权限(Kylin)

用户与角色 角色的概念 将一组具有相同权限的用户组织在一起&#xff0c;这一组具有相同权限的用户就称为角色&#xff08;Role&#xff09;角色在生产系统中一般被视为用户组&#xff0c;利用角色对用户进行批量授权 创建用户角色 CREATE USER name WITH [option]授予权限…

理解内存,让Android性能没有问题

内存优化一直是一个很重要但却缺乏关注的点&#xff0c;内存作为程序运行最重要的资源之一&#xff0c;需要运行过程中做到合理的资源分配与回收&#xff0c;不合理的内存占用轻则使得用户应用程序运行卡顿、ANR、黑屏&#xff0c;重则导致用户应用程序发生 OOM&#xff08;out…

Sarscape5.6版本中导入外部控制点、写入精密轨道文件与GACOS用于大气相位

SARscape中导入外部GCP点用于轨道精炼 https://www.cnblogs.com/enviidl/p/16524645.html在SAR处理时&#xff0c;有时会加入GCP点文件&#xff0c;SAR处理中用到的控制点分为两类&#xff1a;用于校正地理位置的几何控制点&#xff08;Geometry GCP&#xff09;和用于轨道精炼…

C++类和对象(三) (this指针)

this指针 1 this指针的引出 我们先来定义一个日期类 Date class Date { public:void Init(int year, int month, int day){_year year;_month month;_day day;}void Print(){cout << _year << "-" << _month << "-" << …

【电子通识】USB接口三大类型图册

基本概念 不同时期的USB接口有不同的类型&#xff0c;USB接口分为插头和插座&#xff1a; 插头&#xff0c;plug&#xff0c;对应的也叫公口&#xff0c;即插别人的。 插座&#xff0c;receptacle&#xff0c;对应也叫做母口&#xff0c;即被插的。 USB的接口类型&#xff0…

《动手学深度学习 Pytorch版》 9.6 编码器-解码器架构

为了处理这种长度可变的输入和输出&#xff0c; 可以设计一个包含两个主要组件的编码器-解码器&#xff08;encoder-decoder&#xff09;架构&#xff1a; 编码器&#xff08;encoder&#xff09;&#xff1a;它接受一个长度可变的序列作为输入&#xff0c;并将其转换为具有固定…

模拟器-雷电-使用adb push或adb pull操作文件

一、环境 windows 10 雷电模拟器4.0.83 二、问题 有时候我们会需要往模拟器拷贝文件或者复制文件到我的电脑 三、方法 1、获取root权限 adb root adb remount 有可能遇到【daemon not running; starting now at tcp:5037】的报错 查看端口占用进程&#xff1a;netstat -…

vue2升级到vue2.7

vue2升级到vue2.7 小小的改进,大大的提升 只需要简单修改,开发体验得到大大提升. 为什么要升级Vue2.7 不能拒绝的理由: 组合式 API(解决mixins问题:命名冲突,隐式依赖)单文件组件内的 <script setup>语法模板表达式中支持 ESNext 语法(可选链:?.、空值合并:??)单文…

域渗透05-协议(NTLM)

前言&#xff1a; 首先在域内环境中主要有如下6种身份认证协议&#xff0c;最常用的还是Kerberos&#xff0c;NTLM和LDAP三种&#xff1a; Kerberos&#xff1a;Kerberos是一种网络身份验证协议&#xff0c;用于验证用户和服务之间的身份。它通过使用票据和密钥来实现认证&…

Linux 指令学习

Linux 指令学习 以此为记录&#xff0c;也方便自己日后查看回顾&#xff01; Linux命令基础格式 无论是什么命令&#xff0c;用于什么用途&#xff0c;在Linux中&#xff0c;命令有其通用的格式&#xff1a; command&#xff1a; 命令本身 options&#xff1a;[可选&#xf…

AD9371 官方例程

文章目录 前言一、HDL方面1. ZYNQ 核根据ZCU106平台修改&#xff08;**参考UG1244 ZCU106 Evaluation Board**&#xff09;&#xff0c;尤其注意**DDR**的配置&#xff08;**参考美光 MTA4ATF51264HZ**&#xff09;2.dacfifo 深度 要修改 &#xff0c;地址位宽 小于等于16&…

Windows 11 2023 Moment 4 更新内容详解

Windows 11 2023 Moment 4 更新内容详解 编辑&#xff1a;简简单单 Online zuozuo 地址&#xff1a;https://blog.csdn.net/qq_15071263 前言 主要的更新内容清单 Copilot内置应用资源管理器照片应用截图工具画图与视频剪辑Windows 备份系统界面开始菜单快速设置系统托盘任务…

【python】进程和线程

进程和线程 今天我们使用的计算机早已进入多CPU或多核时代&#xff0c;而我们使用的操作系统都是支持“多任务”的操作系统&#xff0c;这使得我们可以同时运行多个程序&#xff0c;也可以将一个程序分解为若干个相对独立的子任务&#xff0c;让多个子任务并发的执行&#xff…

优测云测试平台 | 有效的单元测试

一、前言 本文作者提出了一种评价单元测试用例的质量的思路&#xff0c;即判断用例是否达到测试的“四大目标”。掌握识别好的用例的能力&#xff0c;可以帮助我们高效地写出高质量的测试用例。 评判冰箱的好坏&#xff0c;并不需要有制造一台冰箱的能力。在开始写测试用例之…

TikTok Shop印尼站关停,跨境卖家该如何自救

10.4日&#xff0c;TikTok Shop宣布关停印尼站&#xff0c;无疑是一个巨大的炸弹投在整个跨境圈&#xff0c;让许多跨境卖家以及当地本土的卖家、品牌措手不及。 这对TikTok的东南亚市场而言&#xff0c;无疑是一次沉重的打击。 TikTok在东南亚的商业布局&#xff0c;印尼是其…

小A对我说,他现在快想钱想疯了…

昨天晚上11点&#xff0c;小A给我打电话 小A问&#xff1a;橙哥&#xff0c;有没有赚钱的事做&#xff1f; 他说&#xff0c;实在不想上班了&#xff0c;每天起早贪黑挤地铁 辛辛苦苦干一个月&#xff0c;到手工资三四千块钱&#xff0c;房租一交&#xff0c;日常开支一花&a…

Jmeter安装(快速入门)

大家好我是苏麟今天简单聊一下Jmeter . Jmeter Jmeter官网 : Apache JMeter - Download Apache JMeter 安装Jmeter Jmeter依赖于JDK&#xff0c;所以必须确保当前计算机上已经安装了JDK&#xff0c;并且配置了环境变量。 下载 : 官网下载 : 网盘自取 : 链接&#xff1a;…

【LeetCode】57. 插入区间

1 问题 给你一个 无重叠的 &#xff0c;按照区间起始端点排序的区间列表。 在列表中插入一个新的区间&#xff0c;你需要确保列表中的区间仍然有序且不重叠&#xff08;如果有必要的话&#xff0c;可以合并区间&#xff09;。 示例 1&#xff1a; 输入&#xff1a;interval…

国产开发板上打造开源ThingsBoard工业网关--基于米尔芯驰MYD-JD9X开发板

本篇测评由面包板论坛的优秀测评者“JerryZhen”提供。 本文将介绍基于米尔电子MYD-JD9X开发板打造成开源的Thingsboard网关。 Thingsboard网关是一个开源的软件网关&#xff0c;采用python作为开发语言&#xff0c;可以部署在任何支持 python 运行环境的主机上&#xff0c;灵…

前端将二维数组转换成树形格式数组

原始数据&#xff1a; 最终得到的数据&#xff1a; 具体实现代码&#xff1a;倒推&#xff08;最后一个数据&#xff09;的思路得到数组 function childData(list,i){const arr []//最后一个数组if(i<list.length){list[i].forEach(item>{const obj {name:,prop:,chil…