【笔记】图的基础知识
来源:互联网 发布:淘宝保证金怎么套现 编辑:程序博客网 时间:2024/05/21 09:50
图是一种比线性表、树更为复杂的数据结构。图是一种非线性的数据结构,图中的数据元素之间的关系是多对多的关系。
1.图的定义
图是由数据元素集合V与边的集合E构成的。在图中,数据元素通常称为顶点。其中,顶点集合V不能为空,边表示顶点之间的关系。
若
若
图的形式化定义为G=(V,E),其中,
注:有向图的边称为弧,无向图的边称为边。图中顶点的顺序可以是任意的,任何一个顶点都可以作为图的第一个顶点。
2.图的相关概念
- 邻接点
对于无向图G=(V,E),若边
无向图
- 顶点的度
对于无向图,顶点v的度是指与v相关联的边的数目,记作TD(v)。对于有向图,以顶点v为弧头的数目称为顶点v的入度,记作ID(v)。以顶点v为弧尾的数目称为v的出度,记作OD(v)。顶点v的度为TD(v)=ID(v)+OD(v)。
若图的顶点个数为n,边数和弧数为e,顶点
- 路径
无向图G中,从顶点v到顶点v’的路径是从v出发,经过一系列的顶点序列到达顶点v’。如果G是有向图,则路径也是有向的,路径的长度是路径上弧或者边的数目。第一个顶点和最后一个顶点相同的路径称为回路或环。序列中顶点不重复出现的路径称为简单回路或简单环。
- 子图
假设存在两个图
- 连通图和强连通图
对于无向图G,如果从顶点
对于有向图G,如果对每一对顶点
- 完全图
若图的顶点数目是n,图的边(弧)的数目是e。若不存在顶点到自身的边或弧,即若存在
- 稀疏图和稠密图
具有
- 生成树
一个连通图的生成树是一个极小连通子图,它含有图的全部顶点,但只有足以构成一棵树的n-1条边。如果在该生成树中添加一条边,则一定会在图中出现一个环。一棵具有n个顶点的生成树仅有n-1条边,如果少于n-1条边,在该图是非连通的;多于n-1条边,则一定有环出现。反过来,具有n-1条边的图不一定能构成生成树。一个图的生成树不一定是唯一的。
- 网
在图的边或弧上,有时标有与它们相关的数,这种与图的边或弧相关的数称作权。这些权可以表示从一个顶点到另一个顶点的距离或代价。这种带权的图称为网。
3.图的抽象数据类型
数据对象集合
图的数据对象为图的各个顶点和边的集合。图中的顶点是没有先后次序的。图分为有向图和无向图,图中结点之间的关系用弧或者边表示,通过弧或边相连的顶点相邻接或相关联。
图中顶点之间是多对多的关系,即任何一个顶点可以有与之邻接或关联的顶点。
基本操作集合
(1)CreateGraph(&G):创建图。
(2)DestroyGraph(&T):销毁图。
(3)LocateVertex(G,v):返回顶点v在图中的位置。
(4)GetVertex(G,i):返回图G中序号i对应的值。
(5)FirstAdjVertex(G,v):返回v的第一个邻接顶点。
(6)NextAdjVertex(G,v,w):返回v的下一个邻接顶点。
(7)InsertVertex(&G,v):图的顶点插入操作。
(8)DeleteVertex(&G,v):图的顶点删除操作。
(9)InsertArc(&G,v,w):图的弧插入操作。
(10)DeleteArc(&G,v,w):图的弧删除操作。
(11)DFSTraverseGraph(G):图的深度优先遍历操作。
(12)BFSTraverseGraph(G):图的广度优先遍历操作。
- 【笔记】图的基础知识
- MTK 层的基础知识笔记
- MTK 层的基础知识笔记
- 基础知识笔记
- 基础知识 笔记
- 基础知识笔记
- 基础知识笔记
- 基础知识笔记
- 从温JavaSE基础知识的笔记
- linux学习笔记一:linux的基础知识
- PDF笔记(一):Itext 的基础知识
- [Chromium学习笔记]了解Chromium的基础知识
- Android学习笔记 3.1View的基础知识
- 2016.6.15笔记(1)-测试的基础知识
- 2016.6.15笔记(3)- Ant的基础知识
- C++ 学习笔记---零散的基础知识
- Linux学习笔记一基础知识的整理
- HTML+CSS+JS的基础知识笔记
- springboot war打包步骤
- PAT 1018.锤子剪刀布 C++
- 谷歌大脑「辛顿」团队最新研究:将神经网络提炼成「软决策树」
- 首发 | Gyrfalcon加入芯片角斗场,又一款改变AI界的产品问世
- $.getJson(url,data,callback)回调函数不执行的问题
- 【笔记】图的基础知识
- 时间戳转换时间
- [牛客网#35D 树的距离]离散化+线段树合并
- nil Nil NULL NSNull 之间的区别
- 异常 /C++
- ROS 学习记录
- [Android]配置Gradle的productFlavors构建项目用于多渠道打包或多环境运行
- 时间戳转几周前
- 如何突破Java程序员三年的门槛