数据结构——图(图的基本概念)

2023-09-15 14:42:48


前言

  1. 图的基本概念
    1.1 有向图
    1.2 无向图
    1.3 有向完全图
    1.4 无向完全图
    1.5 连通图

一、图的基本概念

图的定义

  1. 图的定义:图G是顶点集V和边集E组成,记为G=(V,E),其中V(G)表示图G中顶点有限非空集,E(G)表示图G中顶点之间关系(边)的集合,图中顶点个数也叫图的阶,图不可以是空,边集可以为空

  2. 有向图:E是有向边(也叫弧)的有限集合,G是有向图,有向边记为<v,w>,顶点v到顶点w
    在这里插入图片描述

  3. 简单图:不存在重复边,不存在顶点到自身的边

  4. 无向完全图:无向图中任意两个顶点之间都存在边称为无向完全图(有一个n个顶点的无向完全图中每个顶点到其他(n-1)个顶点都连有一条边)

  5. n个顶点的无向完全图有n(n-1)/2条边
    在这里插入图片描述

  6. 有向完全图:有向图中,任意两定点间存在方向相反的两条边,称为有向完全图(在一个有n个顶点的有向完全图中每个顶点到其他(n-1)个顶点都连有一条弧)则n个顶点有n(n-1)条弧
    在这里插入图片描述

  7. 子图:设有两个图G =(V,E)和G’=(V’,E’),若V(G’)是V(G)的子集,且E(G’)是E(G)的子集,则称G’是G的子图(Subgraph)。
    在这里插入图片描述

  8. 连通、连通图和连通分量:无向图中,顶点v到w有路径存在,则v和w是连通的,任意两个顶点间都存在路径则是连通图;无向图中极大连通子图称为连通分量,若有n个顶点,并且小于n-1条边,则必为非连通图;边最少(n-1条)即构成一个树
    在这里插入图片描述

  9. 强连通图、强连通分量:有向图中,从顶点v到w和从w到v都有路径,则称两顶点是强连通的,任意一对顶点都是强连通的则是强连通图;边最少即构成有向环

  10. 非强连通图的每一个极大强连通子图称为G的生成树

  11. 生成树:连通图生成树是包含全部顶点的一个极小连通子图,顶点为n个,生成树有n-1条边(包含无向图G所有顶点的极小连通子图,成为生成树)

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

  13. 顶点的度、入度和出度:度是以该顶点为一个端点的边的数目;

  14. 对于无向图,顶点度是依附于该顶点边的条数,全部顶点的度之和等于边数的两倍;

  15. 有向图入度是以顶点v为终点的有向边的数目,出度是以顶点v为起点的有向边的数目,顶点度等于出度和入度之和,有向图全部顶点的入度之和和出度之和相等且等于边数

  16. 边的权和网:有些图, 对应每条边有一相应的数值,这个数值叫做该边的权(Weight)。边上带权的图称为带权图,也称为网络。

  17. 路径、路径长度和回路:一个顶点到另一顶点全部路径过程,路过边数称为路径长度,第一个顶点和最后一个顶点相同的叫回路;一个图有n个顶点,并且有大于n-1条边,此图一定有环

  18. 距离:从顶点v到w最短路径若存在,则叫距离

  19. 简单路径:顶点不重复出现;除第一个和最后一个顶点外,其余顶点不重复出现的回路叫简单回路

  20. 有向树:一个顶点入度为0,其余入度全为1,则称此有向图为有向树

总结

  1. 图的基本概念
    1.1 有向图
    1.2 无向图
    1.3 有向完全图
    1.4 无向完全图
    1.5 连通图
更多推荐

【数据结构与算法】概论

(多选题,3分)设n为算法中的问题规模,通常用()渐进符号表示算法的执行时间与n之间的一种增长关系。A.ΟB.ΘC.ΩD.ΣE.Φ正确答案:ABC解析:Ο是渐进上界,Ω是渐进下界。Θ需同时满足大Ο和Ω,故称为确界(必须同时符合上界和下界)。Ο极其有用,因为它表示了最差性能。Θ,读音:西塔;既是上界也是下界(tight)

电力系统直流潮流分析【N-1】(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。⛳️座右铭:行百里者,半于九十。📋📋📋本文目录如下:🎁🎁🎁目录💥1概述📚2运行结果🎉3参考文献🌈4Matlab代码及文档讲解💥1概述该程序接受一个感受矩阵B=[NxN]和注入功

springboot集成mybatis-plus

一、在springboot中配置mybatis-plus1、创建一个springboot项目,注意勾选mysql2、在pom.xml文件中添加mybatis-plus的依赖包<?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache.or

SpringBoot 集成 SpringSecurity 从入门到深入理解

完整的目录介绍SpringSecurity简述SpringSecuritySpringSecurity的主要功能说明项目源码入门案例项目工程路径第一步:加载依赖第二步:创建核心的配置类第三步:增加controller第三步:启动程序小结界面跳转说明密码生成说明重点内容扫盲重要的FilterPasswordEncoder

学习计算机网络中的一些疑问及解答

文章目录前言一、为什么要进行三次握手二、三次握手的流程三、三次握手中seq和ack的值四、四次挥手流程五、四次挥手中seq和ack的值六、为什么要等待才回复七、为什么等待2MSL总结前言一个本硕双非的小菜鸡,备战24年秋招,在学习计算机网络的过程中遇到了一些问题,思考并解答。部分参考小林大佬的解答:小林coding一、

IntelliJ IDEA下基于Scala实现的Git检查工具

本文使用Scala实现自定义的Git检查工具,读者可以基于本文的示例进行扩展与实现,也可以进行其他应用方向的尝试。01、Git检查工具在实现Git检查工具之前需要知道程序究竟要做什么。我们知道,在管理Git分支时可以进行代码合并操作,这样可以将其他开发者提交的内容同步到当前分支中,当用户对自己的分支进行提交时就不会与现

深入理解 Java 异步编程:Future 和 CompletableFuture 的全面比较

深入理解Java异步编程:Future和CompletableFuture的全面比较FutureCompletableFuture选择适合的场景和需求:理解Future和CompletableFuture的底层实现、用法以及它们的优劣势对深入了解这两个概念非常重要。我将从底层开始,详细解释它们,然后根据不同场景和需求讨

评价模型:层次分析法

写在前面:博主本人大学期间参加数学建模竞赛十多余次,获奖等级均在二等奖以上。为了让更多学生在数学建模这条路上少走弯路,故将数学建模常用数学模型算法汇聚于此专栏,希望能够对要参加数学建模比赛的同学们有所帮助。目录1.模型建立1.1建立层次结构模型1.2构造判断矩阵1.3判断矩阵的一致性检验1.4层次总排序及一致性检验2.

Java学习笔记40——Lambda表达式

Lambda表达式Lambda表达式函数式编程思想概述Lambda表达式的标准格式Lambda表达式练习练习1练习2练习3Lambda表达式的省略模式Lambda表达式的注意事项Lambda表达式与接口的区别Lambda表达式函数式编程思想概述面向对象思想强调“必须通过对象的形式做事”在函数式思想中尽量忽略面向对象的复

DipC 构建基因组 3D 结构(学习笔记)

背景本文主要记录了DipC数据的复现过程、学习笔记及注意事项。目录下载SRA数据使用SRAToolkit转换SRA数据为Fastq格式使用bwa比对测序数据使用Hickit计算样本的基因组3D结构使用散点图展示3D结构计算3D结构重复模拟的稳定性其他步骤1.下载SRA数据1.1从NCBI网站下载SRA数据(桌面操作)根

考研英语笔记:好难

文/谷雨不用再去深圳出差了,在公司混日子,备考时间增加了许多。除去数学和专业课,我现在花费在英语上的时间不算多,每天研究一篇经济学人的精读,然后做些习题。今天我看的是8.26期经济学人的一篇文章《AIcouldfortifybigbusiness,notupendit》。fortify本意是筑防御工事以防卫;(尤指)筑

热文推荐