图的基本概念

首先,你要明确图是什么样子的,就是下面这个样子的

图的定义与术语

有向图和无向图

直接对比图就可以看出来,有向图和无向图的区别了,这个没有什么难的。

有向图和无向图的表示法有略微的区别,注意看 G1有箭头,有向图,表示方法是 V={V~0~,V~1~,V~2~,V~3~} E = {<V~0~,V~1~>,<V~1~,V~2~>,<V~1~,V~0~>,<V~2~,V~0~>,<V~2~,V~3~>} G2无箭头,无向图,表示方法是 V={V~0~,V~1~,V~2~,V~3~} E = {(V~0~,V~1~),(V~1~,V~2~),(V~0~,V~2~),(V~2~,V~3~)}

弧、弧头、弧尾:有向图的边称为弧。无向图叫做边。有序偶对表示有向图从v到w的一条弧,v称为弧尾或始点,w称为弧头或终点。

任何两点之间都有边的无向图称为无向完全图。 任何两点之间都有弧的有向图称为有向完全图。

权、带权图:图的边附带数值,这个数值叫权。每条边都带权的图称为带权图。

顶点的度、入度、出度: 1. 无向图中顶点v的度是与该顶点相关联的边的数目,记为D(v)。 2. 有向图中,把以顶点v为终点的弧的数目称为v的入度,记为ID(v);把以顶点v为始点的弧的数目称为v的出度,记为OD(v)。有向图顶点v的度为入度和出度之和,即D(v) = ID(v)+ OD(v)。

简单路径、回路、简单回路:序列中顶点不重复出现的路径称为简单路径。第一个顶点和最后一个顶点相同的路径称为回路。除了第一个顶点和最后一个顶点外,其余顶点不重复的回路,称为简单回路或简单环。

下面还有一些需要了解的术语

连通、连通图、连通分量、极大连通子图、强连通、强连通图、强连通分量、生成树、生成森林

如果精力足够,都看看吧

图的存储结构

图的存储结构有很多中,例如 邻接矩阵、邻接表、十字链表和邻接多重表

邻接矩阵

矩阵中标记1,有边,标记0,没有边

注意:无向图的邻接矩阵是一个对称矩阵

带权图的邻接矩阵

邻接矩阵自考/期末考试真题

尝试着,画出无向图吧!

邻接表

邻接表是顺序存储与链式存储相结合的存储方法。

下图中,左侧是无向图,右侧是该无向图的邻接表,注意看,该符号,表示结束,没有连接的顶点了。

有向图及其类似,这个就不在做图扩充

图的遍历

图的遍历是指从图的某个顶点出发,系统地访问图的每个顶点,并且每个顶点只被访问一次。 遍历图的基本方法有两种:深度优先搜索和广度优先搜索。

连通图的深度优先搜索

深度优先,就是往下走,走不动了,返回上一级在走

连通图的广度优先搜索

顺着一个顶点,然后都遍历完。

图的应用

最小生成树的概念

概念:一个图的最小生成树是图所有生成树中权总和最小的生成树

构造最小生成树的Prim算法

每次都找权值最小的

看案例

构造最小生成树的克鲁斯卡尔算法单源最短路径 这两种算法,自己看一下吧。

拓扑排序

  1. AOV网 工程或者某种流程可以分为若干个小的工程或阶段,这些小的工程或阶段就称为活动。 如果以图中的顶点来表示活动,有向边表示活动之间的优先关系,这种用顶点表示活动的有向图称为AOV网。

2. 拓扑排序 设G=(V,E) 是一个具有n个顶点的有向图,V中顶点的序列v~1~,v~2~,...,v~n~称为一个拓扑序列,当且仅当该顶点序列满足下列条件:若在有向图G中,从顶点v~i~ ~ v~j~ 有一条路径,则在拓扑序列中顶点v~i~必须排在v~j~之前。找到一个有向图的一个拓扑序列的过程称为拓扑排序。完成拓扑排序的前提条件是AOV网中不允许出现回路。

拓扑排序算法的时间复杂度为O(n+e),n是图的顶点个数,e是图的弧的数目。

拓扑排序算法的基本步骤如下:

  1. 图中选择一个入度为0的顶点,输出该顶点
  2. 从图中删除该顶点及相关联的弧,调整被删弧的弧头结点的入度(入度减1);
  3. 重复执行上述两个步骤,直到所有的入度为0

好好理解一下拓扑排序算法吧

自考/数据结构期末考试真题

画图说明步骤 更多图示: https://dwz.cn/r4lCXEuL

拓扑排序不唯一~

c++ 图的连通分量是什么_【自考】数据结构第五章图,期末不挂科指南,第9篇相关推荐

  1. c++ 图的连通分量是什么_学习数据结构第五章:图(图的遍历操作)

    第五章:图(图的遍历操作) 1.图的遍历 图的遍历:从图中某一顶点出发,按照某种搜索方法沿着图中的边对图中的所有顶点访问依次且仅访问一次 其实树的层次遍历和图的广度优先搜索类似,可以把这个二叉树看成一 ...

  2. 实验一 线性表的顺序存储与实现_【自考】数据结构中的线性表,期末不挂科指南,第2篇

    线性表 这篇博客写的是线性表相关的内容,包括如下部分,先看下有木有期待 啥是线性表 线性表的顺序存储 线性表的基本运算在顺序表上的实现 线性表的链式存储 线性表的基本运算在单链表上的实现 循环链表与双 ...

  3. 假设以邻接矩阵作为图的存储结构_学习数据结构第五章:图(图的存储方法)...

    第五章:图(图的存储方法) 1.邻接矩阵法 下面是一个无向图的表示,我们使用一个一维数组存放点集,使用一个二维数组存放边集 二维数组表示边:行号表示其实端点,列号表示结束端点,值表示该边是否存在,以及 ...

  4. map的key可以试一个数组吗?_【自考】数据结构第三章,数组,期末不挂科指南,第5篇...

     数组 概念如下 数组可以看成线性表的一种推广,其实就是一种线性表,一维数组又称为向量 数据由一组具有相同类型的数据元素组成,并存储在一组连续的存储单元中 若一维数组中的数据元素又是一维数组结构,则 ...

  5. struct lnode是什么结构类型_【自考】数据结构第三章,队列,期末不挂科指南,第4篇

    队列 这篇博客主要介绍一下队列的概念,并且采用C语言,编写两种存储实现方式:顺序存储和链式存储,当然还有常规的队列基本操作的实现算法 队列基本概念 标准解释:队列(Queue)是有限个*同类型*数据元 ...

  6. 数据结构第六章——图

    数据结构第六章--图 图的定义和术语 G = (V, E) V:顶点(数据元素的)有穷非空集合: E:边的有穷集合. 无向图:每条边都是无方向的. 有向图:每条边都是有方向的. 完全图:任意两个顶点都 ...

  7. 大话数据结构 第七章 图(二) 最小生成树、最短路径、拓扑排序、关键路径算法

    大话数据结构 第七章 图(二) 最小生成树.最短路径.拓扑排序.关键路径算法 最小生成树 定义 Prim算法 Kruskal算法 最短路径 Dijkstra算法 Floyd算法 拓扑排序 AOV网 拓 ...

  8. pagerank数据集_从数据结构到算法:图网络方法初探

    机器之心原创 作者:朱梓豪编辑:Qing Lin 如果说 2019 年机器学习领域什么方向最火,那么必然有图神经网络的一席之地.其实早在很多年前,图神经网络就以图嵌入.图表示学习.网络嵌入等别名呈现出 ...

  9. 特征图注意力_从数据结构到算法:图网络方法初探

    作者 | 朱梓豪 来源 | 机器之心 原文 | 从数据结构到算法:图网络方法初探 如果说 2019 年机器学习领域什么方向最火,那么必然有图神经网络的一席之地.其实早在很多年前,图神经网络就以图嵌入. ...

最新文章

  1. AJAX:Getting Started
  2. html金额输入框转大写,纯CSS实现输入框字符自动转为小写或大写
  3. 如何将finecms链接URL中的list和show去掉
  4. java循环一年月份天数和_javawhile循环编写输入某年某月某日,判断这一天是这一年的第几…...
  5. 深度学习之 DCN(Deformable Convolution)-可变形卷积
  6. Spark精华问答 | Spark的计算方法是什么?
  7. 菜鸟学Linux 第100篇笔记 tomcat 之 java
  8. (转)cd命令为何要实现成shell内建命令
  9. python竖着输出_Python中三种格式化输出的方式
  10. spring --(16)AOP前置通知与后置通知
  11. 当了几年面试官看了无数简历,你们可以认真写简历吗?
  12. [转载]使用 JDBC 连接不同版本 DB2 数据库的兼容性问题
  13. 高薪程序员面试题精讲系列82之说一下SQL查询语句的执行顺序详解-原理篇(下)
  14. 【​观察】英特尔傲腾DC P4800X有哪些适用场景?
  15. android app wifi密码,无广告查看wifi密码的软件-WiFi密码查看清爽版app下载V999安卓版-西西软件下载...
  16. java中的variable是什么,Java POJO中的field,variable,attribute和property有什么区别?
  17. python画图代码大全-纯干货:手把手教你用Python做数据可视化(附代码)
  18. Policy Evaluation收敛性、炼丹与数学家
  19. uNo面板L灯一直闪_LED智能互联办公室照明恒流调光IC芯片无频闪H5114 - 信息发布 - 电子工程世界...
  20. 编写程序,输入一个字符,若是大写字母,转换成小写字母,若是小写字母,则转换成大写字母输出。

热门文章

  1. python logging模块的作用及应用场景_Python logging模块原理解析及应用
  2. html5页面主题,HTML5页面开发笔记
  3. python画图配色_python matplotlib包图像配色方案分享
  4. ImportError: cannot import name ‘joblib‘
  5. 【包邮送书活动】20210924期-开奖通知
  6. C++学习之路 | PTA乙级—— 1046 划拳 (15 分)(精简)
  7. html里table的scope,HTML表格的运用
  8. 经典php代码,HTML_php教程:经典PHP代码,经典循环例子 HTMLHEAD - phpStudy
  9. 中山大学计算机是A类学科吗,中山大学a类学科有哪些?附中大a类学科名单
  10. 怎么实现java和数据库的链接_JAVA简单链接Oracle数据库,实现注册和登陆的功能