美文网首页
数据结构---图

数据结构---图

作者: 喜忧参半 | 来源:发表于2021-08-26 18:25 被阅读0次

图的定义和术语

  • 有向图(Directed graph)
  • 无向图(Undirected graph)

图的边和弧的关系

完全图
顶点的度
路径

路径Path(eG) from vpto vq :{Vp Vn, Vp…, Vin Vq],其中(Vp, Vi1) (Vi1, Vi2),…, ( Vin,Vq)或者<Vp,Vi1>,…,< Vin,Vq>属于E(G)或A(G)。

  • 路径长度(Length of a path):路径上边或孤的数目
  • 简单路径(Simple path):路径中不含相同顶点的路径,就是没有回路。
  • 回路或环(Cycle):首尾顶点相同的路径,称为回路或环。即:(v=vi0, vi1. ..., vim=v'=v)
  • 简单回路(Simple cycle):除首尾顶点外,路径中不含相同顶点的回路

连通

  • 顶点连通:若顶点v到顶点v'有路径,则称顶点v与v’是连通的
  • 无向连通图:若无向图中任意两个顶点vi,vj都是连通的,则称该图是连通图(vi vj)
  • 有向连通图:若有向图中任意两个项点vivj,都存在从vi到vj和从vj到vi的路径,则称该图为强连通图(vivj)
  • 无向图连通分量:无向图中极大连通子图,称为连通分量
  • 有向图强连通分量:有向图中极大强连通子图,称为强连通分量

生成树

生成树:没无向图G是含有n个顶点的连通图,则图G的生成树是含有n个顶点,且只有n-1条边连通子图

图的存储结构

图的邻接矩阵
网的邻接矩阵

邻接表

将矩阵中每一行转换为一个链表。

无向图邻接表

对图中每个顶点Vi建立一个单链表,链表中的结点表示依附于顶点Vi的边,每个链表结点为两个域:

  • 邻接点域(adjvex):记载与顶点Vi邻接的顶点信息;
  • 键域(nextarc):指向下一个与顶点Vi邻接的链表p结点。

每个链表附设一个头结点,头结点结构为:

  • vexdata:存放顶点信息(姓名、编号等)
  • fristarc:指向链表的第一个结点。

有向图邻接表

与无向图的邻接表结构一样。只是在第i条链表上的结点是以y为孤尾的各个弧头顶点。

有向图逆邻接表

与有向图的邻接表结构一样。只是在第i条链表上的结点是以V为弧头的各个弧尾顶点。

图的遍历

从图中某个顶点出发,沿路径使图中每个顶点被访问且仅被访问一次的过程,称为遍历图。

深度优先搜索(depth-first-search)~(stack)

访问指定的某顶点V,将V作为当前顶点
访问当前顶点的下一未被访问过的邻接点,并以该邻接点作为当前顶点
重复2,直到所有和当前顶点有路径相通的顶点都被访问到
沿搜索路径回很,很到尚有邻接点未被访问过的某结点
将该结点作为当前结点,重复以上步骤,直到所有顶点被访问过的为止

广度优先搜索(level-order traversal)~(queue)

首先访问指定顶点v,将v作为当前顶点
访问当前顶点的所有未访问过的邻接点,并
依次将访问的这些邻接点作为当前顶点
重复2,直到所有顶点被访问为止

最小生成树

生成树——是无向连通图G的某个连通子图
生成树的三大要素:
① n个顶点 ② n-1条边 ③ 连通(不能有回路)

生成树代价

对图中每条边赋于一个权值(代价),则构成一个网,网的生成树G’=(V.{T})的代价是T中各边的权值之和。
最小生成树就是网上所有可能的生成树中,代价最小的一类生成树。
最小生成树也不一定唯一。

相关文章

  • 图表的数据返回格式

    柱状图、折线图、雷达图的数据结构 饼状图、圆环图、漏斗图、仪表盘的数据结构 地图的数据结构 散点图的数据结构 sc...

  • 14-图和图的存储

    图 如何理解图?前面我们学习了线性表,链表,树等基础数据结构,图这种数据结构就是它们的综合利用。我们都知道,图有边...

  • HashMap源码分析

    HashMap数据结构 HashMap数据结构.png HashMap继承图 HashMap-class.jpg ...

  • 有向无环图的数据结构和拓扑排序

    有向无环图的拓扑排序,首先定义有向图的存储数据结构,邻接链表Bag,实现Iterable接口。 定义有向图的数据结构:

  • OVS 源码分析整理

    OVS 核心代码 OVS 架构 OVS 主要的数据结构数据结构关系图主要的数据结构和数据结构的参数数据结构代码 d...

  • 数据结构之图

    数据结构之图 1. 简介 图结构也是一种非线性数据结构。生活中有很多图结构的例子,比如通信网络、交通网络、人际关系...

  • TensorFlow2简单入门-张量数据结构(Tensor)

    程序 = 数据结构+算法 TensorFlow程序 = 张量数据结构 + 计算图算法语言 TensorFlow中的...

  • 数据结构与算法基础

    思维导图 一、数据结构 1、数据结构基础 1.1、什么是数据结构? 数据结构:是相互之间存在一种或多种特定关系的数...

  • LeetCode刷题计划

    几个重要问题类型 排序 查找 字符串处理 图问题 组合问题 几何问题 数值问题 几种基本数据结构 线性数据结构 图...

  • Java核心类库—— 数据结构

    Java核心类库-------数据结构体系图 1.数据结构 2.栈 3.哈希表

网友评论

      本文标题:数据结构---图

      本文链接:https://www.haomeiwen.com/subject/qocxiltx.html