数据结构之图
来源:互联网 发布:马哥linux培训 编辑:程序博客网 时间:2024/06/16 02:01
1.图
图是由顶点的有穷非空集合和顶点之间的边的集合组成,通常表示为:G(V,E),其中G表示一个图,V是图G中顶点的集合,E是图G中边的集合
2.图中定义
2.1无向边
若顶点Vi到Vj之间的边没有方向,则称这个边为无向边(Edge),用无序对(Vi,Vj)来表示。如果图中任意两个顶点之间的边都是无向边,则称该图是无向图;
2.2有向边
若顶点Vi到Vj之间的边有方向,则称这个边为有向边,也称为弧(Arc)。用有序对<Vi,Vj>
来表示。其中vi称为弧尾(Tail),vj称为弧头(Head)。如果图中任意两个顶点之间的边都是有向边,则称该图是有向图;
2.3简单图
在图中,若不存在顶点到其自身的边,且同一条边不重复出现,则称这样的图为简单图
2.4无向完全图
在无向图中,如果任意两个顶点之间都存在边,则该图称为无向完全图。
2.5图的权
有些图的边或者弧具有与它相关的数字,这种与图的边或者弧相关的数叫做权(Weight)。这些权可以表示从一个顶点到另一个顶点的距离或耗费,这种带权的图通常称为网。
2.6有向图的弧度
以顶点v为头的弧的数目称为v的入度(InDegree),记做ID(v);以v为尾的弧的数目称为v的出度(OutDegree),记做OD(v);顶点v的度为TD(v)=ID(v)+OD(v)。
2.7回路与简单环
第一个和最后一个顶点相同的路径称为回路或环。序列中顶点不重复出现的路径称为简单路径。
2.8连通图
在无向图G中,如果顶点v到顶点v‘有路径,则称v和v’是连通的。如果对于图中任意两个顶点vi、vj∈E,Vi、Vj都是连通的,则称G是连通图。(Connected Graph)。
2.9无向图中的极大连通子图
2.10.有向图中的强连通分量
在有向图中,如果对于每一对vi、vj∈V,从vi到vj和从vj到vi都存在路径,则称G是强连通图。有向图中的极大强连通子图称做有向图的强连通分量。
3.连通图的生成树
一个连通图的生成树是一个极小的连通子图,它含有图中全部的n个顶点,但只有足以构成一棵树的n-1条边。
4.1图的邻接矩阵
图的临接矩阵(Adjacency Matrix)存储方式是用2个数组来表示图。一个一维数组存储图中顶点信息,一个二维数组(称为临界矩阵)存储图中的边或者弧的信息。
无向图
有了这个矩阵,
有向图
有向图的邻接矩阵并不对称。vi的入度是vi列各数之和,出度为vi行各数之和。
网图
4.2邻接表
对于边数相对顶点较少的图,邻接矩阵浪费存储空间。
将数组和链表相结合的存储方法称为邻接表。
- 1.图中顶点用一个一维数组存储。(也可以采用单链表,不过数组元素可以容易地读取顶点信息,更加方便。)另外,在顶点数组中,每个数据元素还需要存储指向第一个邻接点的指针,以便于查找该顶点的边信息。
- 2.图中每个顶点vi的所有邻接点构成一个线性表,由于邻接点个数不一定,所以用单链表存储,无向图称为顶点vi的边表,有向图称为顶点vi作为弧尾的出边表。
- 数据结构之图
- 数据结构复习之【图】
- 数据结构之图
- 基础数据结构之图
- 数据结构之图-邻接矩阵
- 数据结构之图详解
- C++数据结构之图
- Python数据结构之图
- 数据结构之图
- 数据结构之图
- 数据结构算法之图
- 数据结构之图
- 数据结构之--图
- 数据结构之---图(一)
- 数据结构复习之【图】
- 数据结构之图
- 数据结构之--图
- 数据结构之图
- salesforce中如何自定义picklist值的顺序
- 概念理解
- java体系中,volatile关键字的作用
- MFC双缓冲绘图解决界面闪烁问题
- iOS APPstore 审核加速
- 数据结构之图
- mybatis笔记-多个参数查询报BindingException异常
- 数据库三大范式(Normal Form)
- Fragment相关源码解析三——状态保存与恢复
- EXTJS 开始日期和开始时间,结束日期和结束时间,当前日期和当前时间之间的比较
- Eclipse 快捷键
- SVDchapter14 机器学习之利用SVD简化数据
- 关于安卓安装包和PC安装包的反编译(破解)
- Unity中一键创建常用文件夹