数据结构 - 图

参考链接:数据结构:图(Graph)【详解】_图数据结构-CSDN博客

 

图的定义

图(Graph)是由顶点的有穷非空集合 V ( G ) 和顶点之间边的集合 E ( G ) 组成,通常表示为: G = ( V , E ) ,其中, G 表示个图, V 是图 G 中顶点的集合, E是图 G 中边的集合。 V={v1​,v2​,...,vn​},则用∣V∣表示图 G 中顶点的个数,也称图 G的阶,E={(u,v)∣u∈V,v∈V},用 ∣E∣表示图 G中边的条数。

图不可以是空图,就是说不能一个顶点没有。图的顶点集V一定非空,边集可以为空,次是图中只有顶点没有边

图的基本概念和术语

有向图

若E是有向边(也称弧)的有限集合时,则图G为有向图。弧是顶点的有序对,记为<v, w>,其中v,w是顶点,v称为弧尾,w称为弧头(被指向的称为头),<v,w>称为从顶点v到顶点w的弧,也称v邻接到w,或w邻接自v。

无向图

若E是无向边(简称边)的有限集合时,则图G为无向图。边是顶点的无序对,记为(v, w)或(w,v),因为(v,w)=(w,v), 其中v,w是顶点。可以说顶点w和顶点v互为邻接点。边(v, w)依附于顶点w和v,或者说边(v, w)和顶点v, w相关联。

简单图

一个图满足 1.不存在重复边 2,不存在顶点到自身的边 则称为简单图

完全图(也称简单完全图)

对于无向图,∣E∣的取值范围是 0 到n(n−1)/2,有n(n−1)/2条边的无向图称为完全图,在完全图中任意两个顶点之间都存在边。对于有向图,∣E∣的取值范围是0到n(n−1), n(n−1)条弧的有向图称为有向完全图,在有向完全图中任意两个顶点之间都存在方向相反的两条弧。G2​为无向完全图,而 G3​为有向完全图。

子图

设有两个图 G=(V,E)和G′=(V′,E′), 若 V′是  V的子集,且E′是E的子集,则称 G′是 G 的子图。若有满足V(G′)=V(G)的子图G′,则称其为G的生成子图

注意:并非V和E的任何子集都能构成G的子图,因为这样的子集可能不是图,即E的子集中的某些边关联的顶点可能并不在V的子集中

连通,连通图和连通分量

在无向图中,若从顶点V到顶点w有路径存在,则称v和w是连通的。若图中G中任意两个顶点是连通的,则称图G是连通图,否则称为非连通图。无向图中的极大连通子图称为连通分量。若一个图有 n 个顶点,并且边数小于 n - 1,则此图必是非连通图

注意:弄清连通、连通图、连通分量的概念非常重要。首先要区分极大连通子图和极小连通子图,极大连通子图是无向图的连通分量,极大即要求该连通子图包含其所有的边;极小连通子图是既要保持图连通又要使得边数最少的子图。

强连通图 ,强连通分量

在有向图中,若从顶点 v 到顶点 w 和从顶点 w 到顶点 v 之间都有路径,则称这两个顶点是强连通的。若入中任何一对顶点都是强连通的,则称此图为强连通图。有向图中的极大强连通子图称为有向图的强连通分量

强连通分量 -- >

注意:强连通图、强连通分量只是针对有向图而言的。一般在无向图中讨论连通性,在有向图中考虑强连通性。

生成树,生成森林

连通图的生成树是包含图中全部顶点的一个极小连通子图。若图中顶点数为 n,则它的生成树含有n−1条边。对生成树而言,若砍去它的一条边,则会变成非连通图,若加上一条边则会形成一个回路。在非连通图中,连通分量的生成树构成了非连通图的生成森林。图G2​的一个生成树如下图所示。

注意:包含无向图中全部顶点的极小连通子图,只有生成树满足条件,因为砍去生成树的任一条边,图将不再连通。

顶点的入度和出度

图中每个顶点的度定义为以该点为一个端点的边的数目

对于无向边,全部顶点的度的和等于边数的 2 倍,因为每条边和两个顶点相关联

对于有向图,顶点 v 的度分为 入度 和 出度 ,入度是以顶点 v 为终点的度,出度是以这个顶点为起点的度。在有向图中全部顶点入度和出度的和等于边数

边的权和网

在一个图中,每条边都可以标上具有某种含义的数值,该数值称为该边的权值,这种边上带有权值的图称为带权图,也称为 

稠密图,稀疏图

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

某东推荐的十大3C热榜第一名!2024随身wifi靠谱品牌推荐!2024随身wifi怎么选?

一、鼠标金榜&#xff1a;戴尔 商务办公有线鼠标 售价:19.9&#xffe5; 50万人好评 二、平板电脑金榜&#xff1a;Apple iPod 10.2英寸 售价:2939&#xffe5; 200万人好评 三、随身WiFi金榜&#xff1a;格行随身WiFi 售价:69&#xffe5; 15万人好评 四、游戏本金榜&#xff…

Codeforces Round 934 (Div. 2) D. Non-Palindromic Substring

题目 思路&#xff1a; #include <bits/stdc.h> using namespace std; #define int long long #define pb push_back #define fi first #define se second #define lson p << 1 #define rson p << 1 | 1 const int maxn 1e6 5, inf 1e9, maxm 4e4 5; co…

第一次给开源项目做贡献,我给 Hutool 改了行注释

大家好&#xff0c;我是松柏。 前两天在修 bug 的时候&#xff0c;写了个indexOf的方法。 这个方法是用来获取一段文本中某个字符串第 n 次出现的索引&#xff0c; 由于第一次写这个方法的时候少考虑了一种边界条件&#xff0c;导致最后查出的数据有时候会不符合预期。 我处…

【论文精读】CAM:基于上下文增强和特征细化网络的微小目标检测

文章目录 &#x1f680;&#x1f680;&#x1f680;摘要一、1️⃣ Introduction---介绍二、2️⃣Related Work---相关工作2.1 &#x1f393; 基于深度学习的对象检测器2.2 ✨多尺度特征融合2.3 ⭐️数据增强 三、3️⃣提议的方法3.1 &#x1f393; 具有上下文增强和特征细化的特…

代码随想录——删除有序数组中的重复项(Leetcode26)

题目链接 双指针思想&#xff0c;和上一篇Leetcode27类似 class Solution {public int removeDuplicates(int[] nums) {int slow 0;for(int fast 1; fast < nums.length; fast){if(nums[fast] ! nums[slow]){nums[slow] nums[fast];}}return slow 1;} }

【文末 附 gpt4.0升级秘笈】超越Sora极限,120秒超长AI视频模型诞生

120秒超长AI视频模型发布&#xff1a;开启视频生成新纪元 随着人工智能技术的迅猛发展&#xff0c;AI视频生成领域也取得了令人瞩目的突破。近日&#xff0c;一项名为“StreamingT2V”的120秒超长AI视频模型正式发布&#xff0c;标志着文生视频技术正式进入长视频时代。这一技…

python实现目录打印及辅助定位特定目录中满足条件的文件

python实现目录文件打印 用tuple进行当前目录下子目录及文件名的获取&#xff0c;代码如下&#xff1a; # 导入模块 import os# 生成一个元组 ret_tuple ()ret_tuple os.walk(.\\, topdownTrue) print(ret_tuple)执行上面代码&#xff0c;我们发现print(ret_tuple)的打印结…

江苏开放大学2024年春《液压与气压传动060246》第2形考作业占形考成绩的25%参考答案

​答案&#xff1a;更多答案&#xff0c;请关注【电大搜题】微信公众号 答案&#xff1a;更多答案&#xff0c;请关注【电大搜题】微信公众号 答案&#xff1a;更多答案&#xff0c;请关注【电大搜题】微信公众号 电大搜题 多的用不完的题库&#xff0c;支持文字、图片搜题&…

如何计算KST指标,昂首资本一个公式计算

在上一篇文章中&#xff0c;Anzo Capital昂首资本和各位投资者一起了解了KST指标&#xff0c;今天我们继续分享如何计算KST指标。 首先投资者可以在时间范围9、12、18和24分析变化率值。 前三个值(时间帧9、12、18)用EMA 26平滑&#xff0c;最后一个值用EMA 39平滑。 然后&…

实习管理系统的设计与实现|Springboot+ Mysql+Java+ B/S结构(可运行源码+数据库+设计文档)

本项目包含可运行源码数据库LW&#xff0c;文末可获取本项目的所有资料。 推荐阅读100套最新项目持续更新中..... 2024年计算机毕业论文&#xff08;设计&#xff09;学生选题参考合集推荐收藏&#xff08;包含Springboot、jsp、ssmvue等技术项目合集&#xff09; 1. 前台功能…

Python之Opencv教程(1):读取图片、图片灰度处理

1、Opencv简介 OpenCV&#xff08;Open Source Computer Vision Library&#xff09;是一个用于计算机视觉和图像处理的开源库&#xff0c;提供了丰富的图像处理、计算机视觉和机器学习功能。它支持多种编程语言&#xff0c;包括C、Python、Java等&#xff0c;广泛应用于图像处…

《VMamba》论文笔记

原文链接&#xff1a; [2401.10166] VMamba: Visual State Space Model (arxiv.org) 原文笔记&#xff1a; What&#xff1a; VMamba: Visual State Space Model Why&#xff1a; 多年以来CNN和VIT作为视觉特征提取的主流框架 CNN具有模型简单&#xff0c;共享权重&…

Java基础之运算符(整合)

文章目录 一.运算符算数运算符练习: 二.算术运算符的高级用法""操作的三种情况数字相加字符串相加字符相加 三.自增自减运算符基本用法 四.赋值运算符&关系运算符赋值运算符关系运算符逻辑运算符 五.短路逻辑运算符六.三元运算符 一.运算符 运算符: 对字面量或…

36.HarmonyOS鸿蒙系统 App(ArkUI) 创建第一个应用程序hello world

36.HarmonyOS App(ArkUI) 创建第一个应用程序helloworld 线性布局 1.鸿蒙应用程序开发app_hap开发环境搭建 3.DevEco Studio安装鸿蒙手机app本地模拟器 打开DevEco Studio,点击文件-》新建 双击打开index.ets 复制如下代码&#xff1a; import FaultLogger from ohos.fau…

kaggle竞赛宝典 | 最新时间序列统一大模型,秒杀各类时序任务!

本文来源公众号“kaggle竞赛宝典”&#xff0c;仅用于学术分享&#xff0c;侵权删&#xff0c;干货满满。 原文链接&#xff1a;最新时间序列统一大模型&#xff0c;秒杀各类时序任务 作者&#xff1a;Fareise 最新时间序列统一大模型UniTS&#xff0c;秒杀各类时序任务&…

ubuntu20.04安装截图工具flameshot

ubuntu20.04 自带的截图工具&#xff0c;可以使用快捷键“shift printScreen” ,但是它不能对截图进行编辑。 现在安装截图工具 flameshot&#xff0c;使用以下命令&#xff1a; sudo apt install flameshot 安装完成后&#xff0c;使用以下命令打开&#xff1a; flamesho…

Flutter 开发学习笔记(1):第一个简单的Flutter项目(上)

文章目录 前言相关链接初始化项目设置键盘映射建议使用AnLink链接物理机。 项目配置日志打印官方案例添加依赖主函数更换添加最简单的按钮Flutter 项目结构Flutter项目入口Flutter的MyApp函数 更新视图直接修改浅拷贝父节点数据思考 修改布局子节点重构子节点布局重构多次扩展布…

操作系统--死锁

目录 说明使用互斥锁时死锁是如何发生的。 系统模型&#xff1a; 死锁的特性&#xff1a; 处理死锁的方法&#xff1a; 死锁的预防&#xff1a; 死锁避免&#xff1a; 说明使用互斥锁时死锁是如何发生的。 我们先来看一个例子&#xff1a; 当两列火车在十字路口逼近时&am…

linux忘记mysql的root密码,强制修改

1、登录linux后编辑mysql的配置文件&#xff1a;vi /etc/my.cnf 2、添加如下代码&#xff0c;表示跳过授权表登录mysql 编辑完成后&#xff0c;按Esc键&#xff0c;":wq"退出编辑并保存修改内容。 3、使用命令&#xff1a;service mysqld restart 重启mysql服务. …

【No.21】蓝桥杯组合数学|数位排序|加法计数原理|乘法计数原理|排列数|组合数|抽屉原理|小蓝吃糖果|二项式定理|杨辉三角|归并排序(C++)

组合数学 数位排序 【问题描述】 小蓝对一个数的数位之和很感兴趣,今天他要按照数位之和给数排序。当两个数各个数位之和不同时,将数位和较小的排在前面,当数位之和相等时,将数值小的排在前面。 例如,2022 排在 409 前面, 因为 2022 的数位之和是 6,小于 409 的数位 之和 13。…