- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
一、图论的基础概念
一、图论的基础概念
以下概念不是定义,也不一定完全,只是一些常用的概念,比较通俗化。在以后具体的算法中再适当加入概念。
图: 由点和线组成的图形。
顶点: 图中的结点。
无向图: 边没有正反方向。
完全图: 在N个顶点的无向图中,边最大为n*(n-1)/2称为无向完全图
度: 与结点相连的边数。
有向图: 边有正反方向。
入度(出度):连入(出)的边数。(对于有向图来说)
奇顶点:结点的度是奇数的点。
路径:如果从a到b可达(包括直接到达或者中间有其他结点)那么从a到b就有一条路径。一条路径就是一种走法,路径的边数叫做路径长度。一条路径上的n个顶点的集合叫做连通集。
回路(环):从a(b(……(a
简单路径:存在从a(b……(e此条路径中每个结点不同。
有根图:有结点到其他任意结点连通,则此结点为根,一个图可以有多根。
连通图:若图中任意两个结点可以连通,则此图为连通图(无向图)。
强连通图:任意i到j都有从i到j的路径。(有向图)
强连通分支:强连通的最大子图。
道路:可以一笔画成的图,并且不重不漏。
*充分必要条件:图是连通的,且奇顶点的个数等于0或2
并且当且仅当奇顶点的个数为0时,图是一条回路(包括一个孤立的点)
二分图(应该是超纲的内容) 充要条件:图中无奇顶点。 具体算法以后补充。
Hamilton回路:经过图中每一个顶点一次的回路。
欧拉回路:图的一个回路,若它通过每条边一次且仅一次2个点的度为奇数,那么它存在一条欧拉路;如果超过2个点的度为奇数,那么它就不存在欧拉路了。
图的存储结构
只总结了常用的存储结构
有相邻矩阵和邻接表两种,只介绍相邻矩阵的内容,邻接表运用了动态指针链表数据结构 实现起来比较麻烦。
无向图:
A[I,J] = 1 当I与J两个结点相邻时
= 0 当I与J两个结点不相邻时,或I=J
(1=I,J=图中结点数)
且有:A[I,J]=A[J,I],即邻接矩阵是对称的。
如上图(A)的邻接矩阵如下:
0 1 1 1
A = 1 0 1 1
1 1 0 0
1 1 0 0
有向图:
A[I,J] = P[I,J] 当I与J两个结点相邻,且权值为P[I,J]时
= 0 或∞ 当I与J两个结点不相邻时,或I=J
如上图(B)和(C)的邻接矩阵分别如下:
0 1 1 ∞ 5 8 ∞ 3
A = 0 0 1 A = 5 ∞ 2 ∞ 6
0 0 1 8 2 ∞ 10 4
∞ ∞ 10 ∞ 11
相应的数据结构定义如下:
const maxn=20;
type adj=0..1;
graph=array [1..maxn,1..maxn] of adj;
还有一种是纪录一条边的两个端点,做边表。
const maxn=20;
type adj=0..1;
x,y=array [1..maxn] of adj;
{x[i],y[i]为第i条边的前一个顶点和后一个顶点}
For i:=1 to n do
Begin
Readln(x[i],y[i]);
{如果是无向图,那么将每一条边拆成两条边,分成第i条边和第i+n条边}
x[i+n]:=y[i]; y[i+n]:=x[i];
end;
三、图的遍历
概念:从图中某一结点出发系统地访问图中所有结点,使每个结点恰好被访问一次,这种运算被图的遍历。
为了避免重复访问某个结点,可以设一个标志数组f[I],未访问时值为FALSE,访问一次后就改为TRUE。
分类:深度优先遍历和广度优先遍历。
重要性:DFS和BFS在图的遍历中和搜索算法中有很重要很重要的地位。必须灵活掌握。
深度优先遍历
从图中某个结点V0出发,访问此结点,然后依次访问从V0的未被访问的邻接点出发进行深度优先遍历,直到图中所有和V0有路径相通的结点均被访问到。若此时图中尚有结点未被访问,则另选图中一个未被访问的结点V1作为起点,重复上述过程,直至图中所有结点都被访问到为止。
如下面两个图的深度优先遍历结果分别为:a,b,c,d,e,g,f。
V1,V2,V4,V8,V5,V3,V6,V7。
通俗点 就是先顺着一条路走到底,访问完了这条路之后再回
文档评论(0)