一、图的基本概念
- 图: 一个图G是由两个集合V和E组成的,V是有限的非空顶点集。E是V上的顶点对所构成的边集,分别V(G)和E(G)来表示图中的顶点集和边集记作G =( V, E)
- 顶点:图中每个结点称为顶点
- 无向图 :例如图(a),每条边都没有方向,则称为无向图,在无向图中,边是无序的,并用圆括号表示,例如图(a)的两种表示
V(G1) = {V1,V2,V3,V4,V5};
E(G1) = {(V1,V2),(V2,V5),(V2,V3),(V3,V5),(V3,V4),(V1,V4)};
- 有向图:例如图(b),每条边都用箭头指明了方向,则称为有向图。边是有序的,并用尖括号表示,例如图(b)的两种表示方法为
V(G2)= {V1,V2,V3,V4};
E(G2)= {<V1,V3>,<V3,V4>,<V4,V1>,<V1,V2>};
-
无向完全图
- 如果任意两个顶点间都有一条直接边相连,则称其为无向完全图
- 具有n个顶点的无向完全图中,有 n(n-1) / 2 条边
-
有向完全图
- 任意两个顶点间都有方向互为相反的两条边相连,则称该图为有向完全图
- 具有n个顶点的有向完全图中,有 n(n-1)条边
-
子图
- 设有两个图G = (V,E)和 G1 = (V1,E1)
- 且满足条件:V1是V的子集,E1是E的子集,则称G1为G的子图。
-
路径、路径长度、简单路径和简单回路
- 路径:在图G中从顶点Vp到顶点Vq的一条路径,路径是顶点序列;注:有向图的路径也是有向的
- 路径长度:路径长度是指在这条路径上边的数目 ;路径(v1,v2),(v2,v3), (v3,v5) 记作(v1,v2,v3,v5),其路径长度为3
- 简单路径: 除了第一个顶点和最后一个顶点之外,其余顶点都不同的路径,称为简单路径。例如:(v1,v2,v3,v1) 或 (v1,v2,v3,v4)
- 简单回路:第一个顶点和最后一个顶点相同的简单路径为简单回路;例如:(v1,v2,v3,v1)
-
连通图(无向图)与强连通图(有向图)
- 在无向图中,若从一个顶点Vi到另一个顶点Vj(且i != j)有路径则称顶点Vi和Vj是连通的。若V(G)中每一对不同的顶点都是连通的,则称G是连通图。
- 在有向图中,若V(G)中每一对不同的顶点Vi和Vj。都存在从Vi到Vj及Vj到Vi的路径,则称G是强连通图。
- 注:对于n个顶点的无向图G,若G是连通图,则最少有n-1条边
-
度、入度和出度
- 度: 在无向图中,顶点所具有的边的数目称为该顶点的度。
- 入度:在有向图中,以某顶点为终点的边的数目,称为该顶点的入度。
- 出度:在有向图中,以某顶点为尾(始点)的边的数目称为该顶点的出度。
- 注:一个顶点的出度与入度之和等于该顶点的度
- 度与边的关系:所有顶点的度数之和等于边的二倍
-
有权图
- 对于图G = (V,E) ,若图中的每条边都具有一个相关的数,则这种与图的边相关的数称为该边的权,这种带权的图就称为权图或权网
二、图的存储结构
邻接矩阵表示法
对于有n个顶点的图,用一维数组vexs[n]存储顶点信息,用二维数组A[n][n]存储顶点之间关系的信息。该二维数组称为邻接矩阵。在邻接矩阵中,以顶点在vexs数组中的下标代表顶点,邻接矩阵中的元素A[i][j]存放的是顶点i到顶点j之间关系的信息。
- 若图为非权图
- 顶点间有边用1来表示
- 顶点间无边用0或∞来表示(只能用一种)
- 若图为权图
- 用顶点间边的权值来表示
- 用顶点间边的权值来表示
邻接表表示法
这是图的一种链式分配的存储结构,它包括两个部分,一部分是顶点数据,另一部分是指针域,指向一个包含相邻顶点的单链表。
例如:
三、图的遍历
- 深度优先搜索法(DFS)
- 类似于树的先根遍历
- 选择图中的一个起点,访问相邻结点
- 当访问不到顶点时进行回溯
- 回溯用栈来实现(先进后出)
- 广度优先搜索法(BFS)
- 类似于树的层次遍历
- 选择一个顶点作为起点进行访问
- 随后依次访问每层相邻的顶点
- 可以通过队列来实现(先进先出)
四、生成树
- 有n个顶点
- 有n – 1 条边且是连通图
- 任意删除一条边,必定连通
- 任意加一条边必定有环
最小生成树
克鲁斯卡尔算法
- 依次加边
- 步骤:
- 先画出顶点
- 把权值进行排序(从小到大)
- 从左往右把边依次加进去
- 注意:当形成环路时就不能加了
例如:
排序:
从左往右把最小的边依次加进去(不能形成环路):
普里姆算法
- 依次加顶点
- 步骤:
- 第一步先选择一个顶点
- 然后构造侯选边
- 根据侯选边选择最小的权值连接,接着继续构造侯选边
- 注意:不能形成环路,若有环路,则放弃侯选边
- 例如:
最小且不会形成环路的几条侯选边分别是:
S->A 7
A->C 3
C->D 3
D->B 2
D->T 2
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/204348.html