序言
1对1的线性结构,一对多的树二叉树以及森林,第3种就是多对多的结构,也就是我们所要讲到的图的结构,图形结构是数据结构当中最复杂的一种结构,图形结构的特点就是在这个图当中任意两点之间都会有关系,这里的关系指的是可能会有关系,因为不是一对多也不是1对1,所以没有办法区分层次和顺序了,图上的顶点与顶点之间,我们可以认作是平等的,那我们如何去描述图形结构?
在这里我们会提到两个概念,一个是顶点集,一个是弧集,在这里要区分弧跟边儿的概念,
对于前面1对1和一对多的关系,我们是可以用数据来进行描述它们之间的关系的,也很方便找到他们的前驱和后继,1对1或者是一对多的关系,他们之间的数据与数据之间都有一定的关系,找到某一个数据之后,另外的数据就可以根据前一个数据进行推导出来,和我们现在所提到的图的结构是有区别的,图的结构在描述数据与数据之间的关系时,所采用的描述方式包括了边儿,边儿的方向决定了数据与数据之间存在怎样的关系,那为什么说描述不了图形之间的关系?因为图形当中点和点之间的关系是不确定的,他们没有一个确定的关系,并不像树形结构一样,可以看作是一个家族家族之间存在血缘关系,但是对于图来说点和点之间是没有血缘关系的,
【1】根据图形结构,我们能够想到哪些个东西?
图形结构就是把没有关系的点和点之间通过一些个辅助条件转化成为一种有关系的结构,只有当辅助条件相当多的时候,我们才能够描述出图形之间点和点之间各种数据关系
【2】图的概念?
图是有一个顶点及V和一个弧集R构成的数据结构
弧描述了点与点之间的关系,是一条有效线段,起点为弧尾,终点为弧头
有向图此时a和b之间的关系是不相等的,是对于有象图来说的,因为有象图包含弧,也就是包含一条有向线段
无向图
先提出的弧的概念,有弧推广得到的边的概念,若一根弧正向属于弧,反过来也属于弧,那么我们就概括为边的概念
【1】相等:如果两个点之间存在边,那么我们就认为这两个点之间的关系是平级的
相关术语
nlogn是我们人为规定的,我们根据需要来进行规定,拿些我们可以认为是稀疏图,哪些我们认为是稠密的图都是我们自己决定的我们注意:关联是三者之间的一种关系,而不是点与点之间的一种关系,要包括他们之间的边
我们在讲哈弗曼树的时候提到过路径的概念,简单回路是由简单路径组成的,不能出现重复的点----简单回路是在简单路径中提出来的,具有基础性质判断联通图的方法?
点与点之间是有一条或多条边连接在一起的,不能够单独拆开,如果拆开了,那就是联通分量
对于有向图来说,若任意两个顶点之间都存在一条有向路径,那么称此有向图为强连通图简单的来说就是有出度和入度

图的生成树

先说一种思想:
复杂的东西我们要往简单的方向考虑,这样我们的编码生活才会更加的简单-----复杂的东西简单化但是我们解决复杂的东西我们要找到对应的关系,就像是我们想要马拉松比赛,那么我们可以找到每一段对应的终点,将复杂的问题简单化
生成树是什么?
首先我们要知道生成树是原图的一个子图,此图的特性是包含原图的所有顶点,以及其中的n-1条边,这n-1条边是从原来的一条边开始进行寻找,通过n-1条边能够将原来的所有顶点连接到一起,形成一个连通子图,所谓的联通就是没有孤立的点
问题:用到哪些特性了?
如果我们将n个顶点用n-1条边连接起来,要把它作为联通的图,就一定不会出现回路,基本可以肯定的是他是一个树形结构,不会存在圈儿,到每一个点有唯一一条线与它连接,因此引出了树形结构,我们的树形结构从下向上看,除了根节点,每一个顶点都有唯一一个指针指向他,我们试想一下,我们有5个点,如果我们用4条边将5个点连接在一起,那么就不会出现回路的情况,三角形是有三个顶点,三条边,正方形是有4个顶点,4条边,当边与顶点的数值相同的时候才会出现回路,
联通图才可以得到生成树,
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

图的存储表示

我们知道存储结构有两大类,一类是顺序结构,一类是链式结构,但是对于简单的顺序结构以及链式结构是不能够满足图的存储使用的,需要在此基础上做出一些改变,图的邻接矩阵表示总结以下特点:
【1】:对于无向图来说,邻接矩阵就是对称的,因为我们的线段是从两个方向同时指出来的,那么我们就需要记录两个1,因此我们应该想到的是前面提到的三角矩阵
计算
有向图的邻接矩阵不一定是对称矩阵我们如何计算顶点的出度以及入度?
首先我们应该找到节点所在的行,行上面的1代表的就是出度,列代表的是入度,总的度我们用出度加上入度来进行表示就可以了
图上的矩阵数据表示的是边或者弧,而不是表示的节点问题,因此我们在进行结点的删除以及添加的时候,我们还是不方便的,原因是我们使用的是线性结构,而不是链式结构,因此下面我们将要介绍的就是链式结构有向图是分为两种的,一种是正向的,后面的连接是从小到大的,另外一种是反向的,对应的链接表时从大到小进行连接的

图的基本概念【数据结构】相关推荐

  1. 数据结构基础之图(上):图的基本概念

    转自:http://www.cnblogs.com/edisonchou/p/4672188.html 图(上):图的基本概念 前面几篇已经介绍了线性表和树两类数据结构,线性表中的元素是"一 ...

  2. Java数据结构之图的基本概念和算法,深度优先遍历DFS,广度优先遍历BFS(图解)

    文章目录 前言 一.图的基本概念 1.图的定义 2.基本术语 二.图的基本算法 1.初始化图 2.插入顶点和边 3.矩阵打印 4.返回第一个邻接结点的下标 5.返回第一个邻接结点的下一个结点的下标 三 ...

  3. 【数据结构与算法】-6.1图的基本概念和术语

    1 图的基本概念和术语 图:G=(V,E) Graph= (Vertex, Edge) V:顶点(数据元素)的有穷非空集合; E:边的有穷集合. 图可以没有边 无向图:每条边都是无方向的 有向图:每条 ...

  4. 从小白开始自学数据结构——第十二天【图及其基本概念和邻接表的定义】

    图的定义图是由顶点的有穷非空集合和顶点之间的边的集合组成,通常表示为:G(V,E).其中G表示一个图,V是图G中顶点的集合,E是图G中边的集合.图的基本概念:顶点:图的数据元素(就像线性表中的元素,树 ...

  5. 数据结构之图的基本概念

    定义:图(Graph)是由顶点的有穷非空集合和顶点之间边的集合组成,通常表示为:G(V,E),其中,G表示一个图,V是图G中顶点的集合,E是图G中边的集合. 在图中需要注意的是: (1)线性表中我们把 ...

  6. 常见数据结构和算法实现(排序/查找/数组/链表/栈/队列/树/递归/海量数据处理/图/位图/Java版数据结构)

    常见数据结构和算法实现(排序/查找/数组/链表/栈/队列/树/递归/海量数据处理/图/位图/Java版数据结构) 数据结构和算法作为程序员的基本功,一定得稳扎稳打的学习,我们常见的框架底层就是各类数据 ...

  7. 图的基本概念及存储方式

    图的基本概念 图(Graph)是一种非线性数据结构. 顶点:树中的元素我们叫做节点:图中的元素我们叫做顶点(vertex). 边:图中的一个顶点可以与任意其他顶点建立关系,我们把这种建立的关系叫做边( ...

  8. 图的知识点总结-数据结构

    一:图的基本概念和术语 1.图之间的关系可以是任意的,任意两个数据元素之间都可能相关. 2.顶点:数据元素. 3.边or弧:从一个顶点到另一个顶点的路径.<V, W>表示弧,(V,W)表示 ...

  9. neo4j︱图数据库基本概念、操作罗列与整理(一)

    图数据库常规的有:neo4j(支持超多语言).JanusGraph/Titan(分布式).Orientdb,google也开源了图数据库Cayley(Go语言构成).PostgreSQL存储RDF格式 ...

  10. 网状结构(图)的基本知识——图的基本概念

    网状结构(图)的基本知识 专栏导读及目录https://blog.csdn.net/createprogram/article/details/86741044 如果说树型结构是种层次结构的话,图则是 ...

最新文章

  1. FZU 2297 Number theory【线段树/单点更新/思维】
  2. Linux dn命令大全,linux命令大全完整版.doc
  3. mingw编译wxwidgets
  4. 2017-2018-20172309 《程序设计与数据结构》第八周学习总结
  5. 前后端分离和微服务_为什么说微服务,要从前后端分离开始?一文带你揭秘深入微服务...
  6. 理论+技术+代码已经准备完毕!2021年啃透花书!
  7. echarts中国地图线性动画特效
  8. 在日本山区流域使用支持向量机和 bagging、boosting 和 stacking 集成机器学习框架改进滑坡评估--文献阅读
  9. Invoke and BeginInvoke BeginInvoke和EndInvoke方法 (转)2
  10. amd显卡风扇调节_为什么NVIDIA和AMD公版显卡纷纷摒弃涡轮散热器而采用多风扇散热设计?...
  11. POJ1845 Sumdiv【快速模幂+素因子分解+等比数列+二分法】
  12. 9、Android---UI---Material Design
  13. 切图html 在线,网页制作/前端开发/网页切图/网站切图/PSD转html
  14. Ubuntu下配置FLTK的一点经验及使用FLTK编写休息提醒软件
  15. 【简易设计模式07】适配器模式
  16. 计算机的性能及评估标准
  17. php 导出word怎么分页,php 导出Word怎么分页
  18. 数据分析概念与职业操守
  19. 蓝桥杯训练1:质数判断,同余问题
  20. 如何写一篇可实施的技术方案?

热门文章

  1. /etc/fstab和/etc/mtab的区别!
  2. A20 网卡驱动分析
  3. wince使用自定义字体
  4. 双稳态电路的两个稳定状态是什么_从双稳态到双“更”稳态 ——叶芳伟课题组在拓扑光子学研究方向上取得新进展...
  5. 手机来电秀怎么开启_360手机卫士怎么设置来电秀 360手机卫士来电秀设置方法...
  6. linux组成,Linux学习笔记之Linux组成及初识
  7. 【转】OWIN是什么?
  8. 【转】刨根究底字符编码之十五——UTF-32编码方式
  9. C#多线程编程系列(三)- 线程同步
  10. 26享元模式(Flyweight Pattern)