化解数据结构----图的基础知识(万字系列,必备知识)
Posted 是Dream呀
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了化解数据结构----图的基础知识(万字系列,必备知识)相关的知识,希望对你有一定的参考价值。
一、图的定义和基本术语
1.图的定义
图: 简单的说,图是一个用线或边连接在一起的顶点或节点的集合,严格的说,图是有限顶点V和边E的有序对
。
图的表示:一般使用圆圈表示顶点,使用线段表示边,一条边连接两个不同的顶点。有些边是带方向的称为有向边,当顶点v到u含有一条有向边,就画一个箭头从v指向u,使用元组<v,u>表示;而没有方向的边称为无向边,当顶点v到u含有一条有向边,就画一条线段从v指向u,使用元组(v,u)表示。例如下面分别是有向图和无向图。
图根据边的分类分为有向图和无向图:
有向图的边是有向边,它就像公路的单行道一样,只能从一个方向到另一个方向
。无向图的边是无向边,当然它就像双向车道一样可以互相到达,而且两个顶点是没有区别的。
当且仅当(u,v)是图的边,称顶点v和u是邻接的。边(u,v)关联于顶点u和v。
对于无向图这种邻接和关联是对等的,而有向图是单向的,它仅仅从u到v。
无向边用小括号()表示,有向边用尖括号<>表示。
2.图的基本术语
2.1子图
如果图H的顶点和边的集合是图G的子集,那么称图H是图G的子图。
2.2 无向完全图和有向完全图
任意两点间都存在边使其相连的无向图或任意两点间都存在两条不同边的有向图称作完全图
N个顶点的完全图:
- 有向 有n(n-1)条边
无向 有n(n-1)/2条边2.3稀疏图和稠密图
顾名思义,就是讨论多少的问题,注意分界点,这个依据是大家默认的一个依据,而不是必须的分界依据!
数据结构中对于稀疏图的定义为:有很少条边或弧(边的条数|E|远小于|V|²)的图称为稀疏图(sparse graph),反之边的条数|E|接近|V|²,称为稠密图(dense graph)。此定义来自百度百科,实际上是一种朴素的理解,简单来说边越多,图就越稠密
2.4权和网
权: 在图的一些应用中,可能要为每条边赋予一个表示大小的值,这个值就称为权。例如从城市A到城市B存在一条公路,而可以使用权表示这条公路的距离。
那我们把**带权的图称为网**
。
2.5邻接点
2.6度、入度、出度
顶点的度为以该顶点为一个端点的边的数目。
对于无向图,顶点的边数为度,度数之和是顶点边数的两倍
。
对于有向图,入度是以顶点为终点,出度相反。有向图的全部顶点入度之和等于出度之和且等于边数
。顶点的度等于入度与出度之和。
注意:入度与出度是针对有向图来说的。
2.7路径和路径长度
两顶点之间的路径指顶点之间经过的顶点序列,经过路径上边的数目称为路径长度。
2.8回路和环
第一个顶点和最后一个顶点相同的路径称为回路或者环。
2.9简单路径、简单回路和简单环
顶点不重复出现的路径称为简单路径。
除第一个顶点和最后一个顶点外,其余顶点不重复出现的回路称为简单回路或者简单环。
2.10连通、连通图和连通分量
在无向图中,两顶点有路径存在,就称为连通的
。若图中任意两顶点都连通
,同此图为连通图。无向图中的极大连通子图称为连通分量。
2.11强连通图和强连通分量
在有向图中,两顶点两个方向都有路径,两顶点称为强连通
。若任一顶点都是强连通的,称为强连通
。
有向图中极大强连通子图为有向图的强连通分量
。
2.12连通图的生成树
- 连通图的生成树
是包含图中全部顶点的一个极小连通子图
,若图中有n个顶点,则生成树有n-1条边
。所以对于生成树而言,若砍去一条边,就会变成非连通图。 - 一颗有
n个顶点
的生成树有且仅有n-1条边
。 - 如果一个图
n个顶点,边数多于n-1则说明其一定有环
- n-1条边的图却不一定是生成树。
2.13有向树和生成森林
一个有向图的生成森林是由若干颗有向树组成的,含有图中的全部顶点,
但只有足以构成若干棵不相交的有向树的弧。
二、图的类型定义
emmmm,
以上是关于化解数据结构----图的基础知识(万字系列,必备知识)的主要内容,如果未能解决你的问题,请参考以下文章
万字长文超硬核详细学习系列——深入浅出Linux高级篇的知识点,值得你收藏学习必备
[Python从零到壹] 十.Selenium爬取在线百科知识万字详解(NLP语料构造必备技能)
宝藏级全网最全的Matplotlib详细教程-数据分析必备手册(4.5万字总结)