目录
简单图(Null Graph、Trivial Graph&so on)
有向图、无向图(Undirected Graph、Directed Graph)
连通、连通图、连通分量(Connected graph )&非连通图(Disconnected Graph)(针对无向图)
非循环有向图(Directed Acyclic Graph)
带权图(Weighted Graph)(代价图、网图、网络(有人是这样称的))
生成树、生成森林(可能不是基本概念,不过多赘述,请移步其他文章)
感谢你点开此篇,希望你有所收获。
哈哈,用了点营销寄巧将你骗了进来,不过该文章会一直更新,总结的到也到位,照片图片全是自己做的,文章也全是自己打出来的,到也是有些许质量,再次希望你有所收获!!!
我敢说,这些照片你很有可能是第一次看到的!
制作记录
说在前面
首先图没有所谓的第一个结点这么一说,有向图可能有,但无向图没有。
其次,我在下面可能会用到 结点 这一词,它(结点)就是顶点。
最后,建议阅读文献需要挂梯子。
还有一件事,该文章会实时更新,当我遇到了未曾记录的,就会记录在此!
图的分类、基本概念
简单图(Null Graph、Trivial Graph&so on)
在图结构中,若不存在顶点到其自身的边,且同一条边不重复出现,则称这样的图为简单图。
简单说就是,你随便找一个点,我找不到一条路径,可以回到我自身。
路径是指一个顶点到另一个顶点经过的顶点序列。
但 我这样加一条边
这样i,k,l都可以回到自身,就不算简单图了。比如k到i到j再到k,就回到自身了。
了解即可
Null Graph:
如果图中没有边,则图称为零图。
Trivial Graph:
只有一个顶点的图,它也是可能的最小图。
我把它们俩也归类为简单图
有向图、无向图(Undirected Graph、Directed Graph)
无向图:边没有方向的图。在每条边的定义中,节点都是无序对。
有向图:边有方向的图。在每条边的定义中,节点都是有序的对。
完全图(Complete Graph)
每一个节点都有一条边到另一个节点的图。
简单来说,就是图中任意两个顶点之间都存在一条边
对无向图来说
对有向图来说
完全有向图
边数:n(n-1)
完全无向图
边数:n(n-1)/2
正则图(Regular graph)
每个顶点的度都等于K的图称为K正则图。
3正则图
补充:混合图是什么玩意?
网上:有向图和无向图的结合
意义:毫无意义或者说意义不大,考试不会考,工程不会用到,你也没法处理,实际生活中几乎没有示例。
端点和邻接点
在无向图中存在(i,j)那么顶点i和顶点j是两个端点 且 i和j互为邻接点;
i可以叫做j的端点,或者j可以叫做i的端点,或者i和j是这两条边的端点,
端点可以当成边的定义,领接点针对点和点的定义。
在有向图中<i,j>那么顶点i是起点,顶点 j是终点;
顶点的度、入度、出度
一个顶点具有的边的数目就是顶点的度。
i的度为2。
入度,指向我的边,就是入度(的个数)。
出度,我指出去的边,就是出度(的个数)。
子图
右边这3个图都可以是左边这个图的子图。
当然,你不能把右边看成一张非连接图,因为他们的结点有重复。
路径和路径长度
路径:从一个顶点到另一个顶点的顶点序列。
比如,我从k顶点到j顶点
我可以是(k,i,j),也可以是(k,i,l,i,j),注意后者也是一条路径
所以,这就是最短路径存在的原因,因为我的路径有很多条
最短路径 :顾名思义,就是最短咯。
路径长度:在这条路径经过的边的数目。
(k,i,j)的路径长度就是3,(k,i,l,i,j)的就是5
简单路径:在路径序列中,顶点不重复的路径。
(k,i,j)就是简单路径,而(k,i,l,i,j)就不是简单路径,因为顶点重复了。
简单来说,就是不能重复经过同一条边或者同一个顶点。
回路(或者叫环)
开始顶点和结束顶点是同一个顶点
i->l->j->l->i
区分:
简单回路:开始点和结束点相同,其余顶点均不相同,i->l->j->l->i就不是简单回路。
欧拉回路(针对于边):一条回路,经过图中的各边且恰好经过一次。
所以该回路的长度=边的总数
上面这个图没有欧拉回路。
哈密顿回路(针对于顶点):经过顶点一次,且恰好一次。
上面这个图没有哈密顿回路。
因为k连回路都不存在,更不要说区分啦。
上面概念知道就好。
连通、连通图、连通分量(Connected graph )&非连通图(Disconnected Graph)(针对无向图)
如果在一个图,从顶点i到顶点j,有路径就叫连通。
如果任意两个顶点都连通,叫连通图。
注意连通说的是有路径,而不是所有点之间都有连线。
连通分量:无向图中,极大连通子图,称为连通分量。
也就是说,一个子图,是连通的,而且极大,再加任意一个结点,这个图就不连通了。
抠出了左边这个子图,它连通,再加上右边这个结点 ,它就不连通了,注意这也是一个图。
无向图一般来说,不是很好找没有路径的,这里要注意,上面只是说明一下。
强连通图、强连通分量(针对有向图)
强:不是一条线就可以解决的啦。
对于下图,你可以说i到k是连通的,但你不能说i和k是连通的。
强连通图:任意两点之间都有路径
强连通分量:一个有向图的极大强连通子图,就是强连通分量。
这些概念主要用于考试。
稠密图、稀疏图
看的边的多少,但也是相对而言的。
需要题目给你。
环图(Cycle Graph)
在这个图中,这个图本身就是一个循环,每个顶点的度数是2。
循环图(Cyclic Graph)
包含至少一个循环的图称为循环图。
左边是环图,右边是循环图。
非循环有向图(Directed Acyclic Graph)
不包含任何循环的有向图。
二分图(Bipartite Graph)
一种图,其中的顶点可以被分成两个集合,使得每个集合中的顶点在它们之间不包含任何边。
带权图(Weighted Graph)(代价图、网图、网络(有人是这样称的))
一个图,其中的边已经指定了合适的权重,称为加权图。
加权图可以进一步分为有向加权图和无向加权图。
生成树、生成森林(可能不是基本概念,不过多赘述,请移步其他文章)
是指选取连通图的所有顶点及一部分边,只要能连通所有顶点而又不产生回路的任何子图都是这个连通图的生成树。所以一个连通图的生成树不唯一。生成树是这个连通图的一个极小连通子图。
右边这个图就可以理解为左边这个图的生成树。
这里有一篇关于生成森林的文章,实力强的可以看看
https://arxiv.org/pdf/2007.05721.pdfhttps://arxiv.org/pdf/2007.05721.pdf
欢迎阅读我的图的存储结构的逻辑梳理的文章。
http://t.csdn.cn/BzPdRhttp://t.csdn.cn/BzPdR