数据结构(图)

定义

  1. G = (V, E)              图 = (点,边)

    图,Graph

    点,Vertex

    边,edge

    有空表,空树,但没有空图

    图可以没有边|E| = 0,但不能没有一个点

  2. 稠密图 &稀疏图

    是边的多少决定的

  3. (见Excel对照表)
  4. 例题

    无向图,23条边,度为4的有5个点,度为3的有4个点,度为2的有多少个点?

             无向图的度总数 = 每个点的度数之和 = 2倍的边数

             23x2 = 4x5 + 3x4 + 2xN,N = 7

图的存储

  1. (根据各个表示法,还原成图)
  2. (根据图写出各个表示法)

图的遍历

  1. 广度优先BFS

    队列

  2. 深度优先DFS

    深度优先递归遍历一个无环的,有向图,只在退出时输出相应的点,这样,得到的顶点序列,是逆拓扑排序(王道.P210.T11

图的应用

不可以检查,有向图是否构成环(回路):最短路径的3个方法,广迪弗(甘道夫)

知识点对比学习

图的基本概念

简单图1、不存在重复边
2、不存在顶点到自身的边
多重图不是简单图
连通任意两点都有路径存在
路径点到点的一些顶点序列
路径长度/距离边的数量
回路=环1、起点和终点相同的路径
2、有回路,无拓扑序列
回路≠简单路径(40811.T8)
简单路径顶点不重复出现的路径
简单回路简单路径的回路

有向图 & 无向图

 无向图有向图 
1、任意两点之间都存在1个
2、一共有 C
n2 = n(n-1)/2 条边
完全图有向完全图1、任意两点之间都存在2个边,一来一回
2、一共有
2Cn2 = n(n-1) 条边
3、其中一个顶点最多可有 2n-2 的度(王道P191.T9)
n是点的个数
1、连通图最少有 n-1 条边(+1就可成环)
2、非连通图
最多有 Cn-12 条边
3、在任何情况下都是连通的(=非连通最多边数+1)则要Cn-12 + 1(408.10.T7)
连通图
任意点2点都有路径
强连通图1、点A到点B有路径,且点B到点A有路径,则这两点才是强联通的
2、任意两点强连通,则是强连通图
3、最少有 n 条边,构成一个环
1、尽可能多得顶点和边
P189.图6.2.ab
连通分量
极大连通子图
强连通分量
极大强连通子图
 
1、度 = 2e = 每个点的度数的和(王道P191.T8/P192.T18)
2、2倍的边长,每条边都有2个顶点相连

n点e边
TD = ID + OD1、总度 = 入度 + 出度
入度:箭头指向顶点,顶点作为终点
出度:顶点作为起点
2、入度 = 出度 = e
3、每条有向边都有一个起点和终点
1、全部点,极少边(极小连通子图)
2、n 个点,则 n-1 条边
生成树 
由各个单独的连通分量构成生成树的集合生成森林  

Cn2的意思是,n个边,任意选2个,不重复的边的个数
An2的意思是,n个边,任意选2个,可重复选

图的存储

图的存储邻接矩阵
(类似线代中的矩阵,是个矩形)
邻接表十字链表邻接多重表
空间复杂度O( |V|2 )无向图:O( |V| + 2|E| )
有向图:O( |V| + |E| )
O( |V| + |E| )O( |V| + |E| )
适用于稠密图稀疏图只能有向图只能无向图
表示方式
(存图的结果)
唯一
“生成树/森林”也唯一
不唯一
“生成树/森林”不唯一
常考点1、存储大小只和顶点有关
2、无向图的度 = 一行/一列
有向图的度 = 出度(一行) + 入度(一列)
1、出度:一行
入度:扫描整个表
  

 

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

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

相关文章

npm 切换成淘宝源,以及遇到npm 报错如何解决

淘宝源:npm config set registryhttps://registry.npmmirror.com/ 然后再npm下 package-lock.json这个删了 npm i再试一下

清远某国企IBM服务器Board故障上门维修

接到一台来自广东清远市清城区某水利大坝国企单位报修一台IBM System x3650 M4服务器无法开机的故障,分享给大家,同时也方便有需要的朋友能及时找到我们快速解决服务器问题。 故障服务器型号:IBM System x3650 M4 服务器使用单位:…

每日两题 / 142. 环形链表 II 146. LRU 缓存(LeetCode热题100)

142. 环形链表 II - 力扣(LeetCode) 用哈希记录走过的节点即可 /*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode(int x) : val(x), next(NULL) {}* };*/ class Solution { public:Lis…

Swift Zulian Tiger

Swift Zulian Tiger 迅捷祖利安猛虎 16万金(游戏币) 1万金大概就能兑换460元~600元之间,6400元-9600元,汗颜 故事的一天刚打完BWL,才125金(游戏币) 本来想下线的结果他们说你太黑了&…

智能售货机:引领便捷生活

智能售货机:引领便捷生活 在这个科技迅速进步的时代,便捷已成为生活的必需。智能售货机作为技术与便利完美结合的产物,正逐渐改变我们的购物方式,为都市生活增添新的活力。 智能售货机的主要优势是它的极致便利性。不论是在地铁…

GMSSL-通信

死磕GMSSL通信-C/C++系列(一) 最近再做国密通信的项目开发,以为国密也就简单的集成一个库就可以完事了,没想到能有这么多坑。遂写下文章,避免重复踩坑。以下国密通信的坑有以下场景 1、使用GMSSL guanzhi/GmSSL进行通信 2、使用加密套件SM2-WITH-SMS4-SM3 使用心得 ​…

透视晶圆制造黑匣子:RFID赋能智能生产,构建晶圆盒全程精准追溯体系

透视晶圆制造黑匣子:RFID赋能智能生产,构建晶圆盒全程精准追溯体系 应用背景 在全球半导体产业链中,晶圆盒作为承载硅片的重要载体,其生产过程的精细化管理和追溯显得至关重要。近年来,一种名为RFID(Radi…

送礼物动态特效直播和短视频特效源码送礼物动态连麦PK特效语音视频聊天室朋友圈十套

内附十套动画效果源码,可F5刷新随机显示特效预览。送礼物动态特效直播和短视频特效源码送礼物动态连麦PK特效语音视频聊天室朋友圈十套 SVGA 是一种用于嵌入式动画的矢量文件格式,通常用于在移动应用程序和网页中展示高质量的动画效果。相对于传统的 GIF…

《架构风清扬-Java面试系列第21讲》什么是线程的优先级?在Java中如何设置线程的优先级?

各位小伙伴早上好! 谢谢你的关注!也欢迎来加入我主导的知识星球,更多干货,提高你的面试准备效率! 敢承诺三天内不满意,可以直接退出! 这道题,属于面试热场的题目,我是不…

CSS3 平面 2D 变换+CSS3 过渡

个人主页:学习前端的小z 个人专栏:HTML5和CSS3悦读 本专栏旨在分享记录每日学习的前端知识和学习笔记的归纳总结,欢迎大家在评论区交流讨论! 文章目录 ✍一、CSS3 平面 2D 变换💎1 坐标轴💎2 transform 语法…

使用keil开发stm32串口

1,初始化IO串口1,pclk2:PCLK2时钟频率(Mhz),波特率9600, 中断向量一般配置用中断方式接收数据 I/O口配置:TXD配置为复用推挽输出(GPIO_Mode_AF_PP),RXD配置为浮空输入(GP…

总分410+专业130+国防科技大学831信号与系统考研经验国防科大电子信息与通信工程,真题,大纲,参考书。

好几个学弟催着,总结一下我自己的复习经历,希望大家复习少走弯路,投入的复习正比换回分数。我专业课831信号与系统130(感觉比估分要低,后面找Jenny老师讨论了自己拿不准的地方也没有错误,心里最近也这经常回…

ETL结合飞书快速实现业务信息同步

一、ETL工具介绍 ETLCloud数据集成平台是一款针对IT以及数据工程师推出的全域数据集成平台产品。它是集实时数据集成和离线数据集成以及API发布为一体的数据集成平台。与其他开源数据集成工具相比,系统采用轻量化架构、具有更快的部署速度、更快的数据传输速度、更…

机器学习-09-图像处理02-PIL+numpy+OpenCV实践

总结 本系列是机器学习课程的系列课程,主要介绍机器学习中图像处理技术。 参考 【人工智能】PythonOpenCV图像处理(一篇全) 一文讲解方向梯度直方图(hog) 【杂谈】计算机视觉在人脸图像领域的十几个大的应用方向&…

hertzbeat监控工具部署

目录 参考简介部署docker-compose.ymldocker安装使用portanier部署访问地址默认用户密码 配置SpringBoot程序配置基础信息新增阈值规则新增通知策略 参考 家庭私有云上 Docker 部署 hertzbeat,好用的监控告警系统 官网 简介 hertzbeat是一个拥有强大自定义监控能…

CSS实现弹性盒子保持水平和垂直居中

弹性盒子 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title> </head> &…

算法思想总结:分治思想

一、颜色划分 . - 力扣&#xff08;LeetCode&#xff09; class Solution { public:void sortColors(vector<int>& nums) {//三路划分的思想int nnums.size();int left-1, rightn,cur0;while(cur<right){if(nums[cur]0) swap(nums[left],nums[cur]);else if(nums…

014:vue3 van-list van-pull-refresh实现上拉加载,下拉刷新

文章目录 1. 实现上拉加载&#xff0c;下拉刷新效果2. van-list&#xff0c;van-pull-refresh组件详解2.1 van-list组件2.2 van-pull-refresh组件 3. 完整案例4. 坑点&#xff1a;加载页面会一直调用加载接口 1. 实现上拉加载&#xff0c;下拉刷新效果 通过下拉刷新加载下一页…

【尝试】域名验证:配置github二级目录下的txt文件

【尝试】域名验证&#xff1a;配置github二级目录下的txt文件 写在最前面一、初始化本地仓库二、设置远程仓库1. 远程仓库 URL 没有设置或设置错误添加远程仓库修改远程仓库 2. 访问权限问题3. 仓库不存在步骤 1: 在你的仓库中添加文件步骤 2: 确认GitHub Pages设置步骤 3: 访问…

Android Studio 使用Flutter开发第一个Web页面(进行中)

附上Flutter官方文档 1、新建Flutter项目&#xff08;需要勾选web选项&#xff09; 新建项目构成为&#xff1a; 2、配置 Flutter 使用 path 策略 官方文档 在main.dart中&#xff0c;需要导入flutter_web_plugins/url_strategy.dart包&#xff0c;并在main(){}函数中usePath…