结构C语言版第章图.docx
- 文档编号:3268580
- 上传时间:2022-11-21
- 格式:DOCX
- 页数:14
- 大小:195.53KB
结构C语言版第章图.docx
《结构C语言版第章图.docx》由会员分享,可在线阅读,更多相关《结构C语言版第章图.docx(14页珍藏版)》请在冰豆网上搜索。
结构C语言版第章图
第七章图
重点难点
要求掌握图的基本概念和术语;熟悉图的各种存储结构及其构造算法,了解各种存储结构的特点及其选用原则;熟练掌握图的两种遍历算法,熟练掌握图在实际应用中的主要算法:
最小生成树算法、最短路径算法、拓扑排序和关键路径算法。
典型例题
1在下图所示的有向图中:
(1>该图是强连通的吗?
若不是,则给出其强连通分量。
(2>请给出所有的简单路径及有向环。
(3>请给出每个顶点的度,入度和出度。
(4>请给出其邻接表、邻接矩阵及逆邻接表。
答:
(1>该图是强连通的,所谓强连通是指有向图中任意顶点都存在到其他各顶点的路径。
(2>简单路径是指在一条路径上只有起点和终点可以相同的路径:
有v1v2、v2v3、v3v1、v1v4、v4v3、v1v2v3、v2v3v1、v3v1v2、v1v4v3、v4v3v1、v3v1v4、另包括所有有向环,有向环如下:
v1v2v3v1、v1v4v3v1(这两个有向环可以任一顶点作为起点和终点>
(3>每个顶点的度、入度和出度:
D(v1>=3 ID(v1>=1 OD(v1>=2
D(v2>=2 ID(v2>=1 OD(v2>=1
D(v3>=3 ID(v3>=2 OD(v3>=1
D(v4>=2 ID(v4>=1 OD(v4>=1
(4>邻接表:
(注意边表中邻接点域的值是顶点的序号,这里顶点的序号是顶点的下标值-1>
vertexfirstedge next
┌─┬─┐ ┌─┬─┐ ┌─┬─┐
0│v1│ ─→│1│ ─→│3│∧│
├─┼─┤ ├─┼─┤ └─┴─┘
1│v2│ ─→│2│∧│
├─┼─┤ ├─┼─┤
2│v3│ ─→│0│∧│
├─┼─┤ ├─┼─┤
3│v4│ ─→│2│∧│
└─┴─┘ └─┴─┘
逆邻接表:
┌─┬─┐ ┌─┬─┐
0│v1│ ─→│2│∧│
├─┼─┤ ├─┼─┤
1│v2│ ─→│0│∧│
├─┼─┤ ├─┼─┤ ┌─┬─┐
2│v3│ ─→│1│ ─→│3│∧│
├─┼─┤ ├─┼─┤ └─┴─┘
3│v4│ ─→│0│∧│
└─┴─┘ └─┴─┘
邻接矩阵:
0101
0010
1000
0010
2.对n个顶点的无向图和有向图,采用邻接矩阵和邻接表表示时,如何判别下列有关问题?
(1>图中有多少条边?
(2>任意两个顶点i和j是否有边相连?
(3>任意一个顶点的度是多少?
【解】
对于n个顶点的无向图和有向图,用邻接矩阵表示时:
(1>设m为矩阵中非零元素的个数
无向图的边数=m/2
有向图的边数=m
(2>无论是有向图还是无向图,在矩阵中第i行,第j列的元素若为非零值,则该两顶点有边相连。
(3>对于无向图,任一顶点i的度为第i行中非零元素的个数。
对于有向图,任一顶点i的入度为第i列中非零元素的个数,出度为第i行中非零元素的个数,度为入度出度之和。
当用邻接表表示时:
(1>对于无向图,图中的边数=边表中结点总数的一半。
对于有向图,图中的边数=边表中结点总数。
(2>对于无向图,任意两顶点间是否有边相连,可看其中一个顶点的邻接表,若表中的adjvex域有另一顶点位置的结点,则表示有边相连。
对于有向图,则表示有出边相连。
(3>对于无向图,任意一个顶点的度则由该顶点的边表中结点的个数来决定。
对于有向图,任意一个顶点的出度由该顶点的边表中结点的个数来决定,入度则需遍历各顶点的边表。
(用逆邻接表可容易地得到其入度。
>
3.DFS和BFS遍历各采用什么样的数据结构来暂存顶点?
当要求连通图的生成树的高度最小,应采用何种遍历?
【解】
DFS遍历采用栈来暂存顶点。
BFS采用队列来暂存顶点。
当要求连通图的生成树的高度最小时,应采用BFS遍历。
4.对下图所示的连通图,请分别用Prim和Kruskal算法构造其最小生成树。
答:
5.什么样的DAG的拓扑序列是唯一的?
答:
确定了排序的源点,DAG图中无前趋顶点只有一个且从该点到终点只有一条路径时,它的拓扑序列才
6.请以V0为源点,给出用DFS搜索下图得到的逆拓扑序列。
答:
逆拓扑序列是:
V4V2V1V0V1V6V5
是唯一的。
习题精选
1.选择题
<1)在一个图中,所有顶点的度数之和等于图的边数的<)倍。
A.1/2B.1C.2D.4
<2)在一个有向图中,所有顶点的入度之和等于所有顶点的出度之和的<)倍。
A.1/2B.1C.2D.4
<3)具有n个顶点的有向图最多有<)条边。
A.nB.n(n-1>C.n(n+1>D.n2
<4)n个顶点的连通图用邻接距阵表示时,该距阵至少有<)个非零元素。
A.nB.2(n-1>C.n/2D.n2
<5)G是一个非连通无向图,共有28条边,则该图至少有<)个顶点。
A.7B.8C.9D.10
<6)若从无向图的任意一个顶点出发进行一次深度优先搜索可以访问图中所有的顶点,则该图一定是<)图。
A.非连通B.连通C.强连通D.有向
<7)下面< )算法适合构造一个稠密图G的最小生成树。
A.Prim算法B.Kruskal算法C.Floyd算法D.Dijkstra算法
<8)用邻接表表示图进行广度优先遍历时,通常借助<)来实现算法。
A.栈B.队列C.树D.图
<9)用邻接表表示图进行深度优先遍历时,通常借助<)来实现算法。
A.栈B.队列C.树D.图
<10)深度优先遍历类似于二叉树的<)。
A.先序遍历B.中序遍历C.后序遍历D.层次遍历
<11)广度优先遍历类似于二叉树的<)。
A.先序遍历B.中序遍历C.后序遍历D.层次遍历
<12)图的BFS生成树的树高比DFS生成树的树高<)。
A.小B.相等C.小或相等D.大或相等
A.0243156
B.0136542
C.0134256
D.0361542
<13)已知图的邻接矩阵如下图所示,则从顶点0出发按深度优先遍历的结果是<)。
邻接矩阵
<14)已知图的邻接表如下图所示,则从顶点0出发按广度优先遍历的结果是<),按深度优先遍历的结果是<)。
A.0132B.0231
C.0321D.0123
邻接表
<15)下面<)方法可以判断出一个有向图是否有环。
A.深度优先遍历B.拓扑排序C.求最短路径D.求关键路径
2.应用题
<1)已知如图6.27所示的有向图,请给出:
每个顶点的入度和出度;
邻接矩阵;
邻接表;
逆邻接表。
图6.27有向图
<2)已知如图6.28所示的无向网,请给出:
邻接矩阵;
邻接表;
最小生成树
图6.28无向网
a
→
b
4
→
c
3
b
→
a
4
→
c
5
→
d
5
→
e
9
^
c
→
a
3
→
b
5
→
d
5
→
h
5
^
d
→
b
5
→
c
5
→
e
7
→
f
6
→
g
5
→
h
4^
e
→
b
9
→
d
7
→
f
3
^
f
→
d
6
→
e
3
→
g
2
^
g
→
d
5
→
f
2
→
h
6
^
h
→
c
5
→
d
4
→
g
6
^
<3)已知图的邻接矩阵如6.29所示。
试分别画出自顶点1出发进行遍历所得的深度优先生成树和广度优先生成树。
图6.29邻接矩阵
<4)有向网如图6.30所示,试用迪杰斯特拉算法求出从顶点a到其他各顶点间的最短路径,完成表6.9。
图6.30有向网
D
终点
i=1
i=2
i=3
i=4
i=5
i=6
b
15
(a,b>
15
(a,b>
15
(a,b>
15
(a,b>
15
(a,b>
15
(a,b>
c
2
(a,c>
d
12
(a,d>
12
(a,d>
11
(a,c,f,d>
11
(a,c,f,d>
e
∞
10
(a,c,e>
10
(a,c,e>
f
∞
6
(a,c,f>
g
∞
∞
16
(a,c,f,g>
16
(a,c,f,g>
14
(a,c,f,d,g>
S
终点集
{a,c}
{a,c,f}
{a,c,f,e}
{a,c,f,e,d}
{a,c,f,e,d,g}
{a,c,f,e,d,g,b}
<5)试对图6.31所示的AOE-网:
求这个项目最早可能在什么时间结束;
求每个活动的最早开始时间和最迟开始时间;
图6.31AOE-网
确定哪些活动是关键活动
【解答】按拓扑有序的顺序计算各个顶点的最早可能开始时间Ve和最迟允许开始时间Vl。
然后再计算各个活动的最早可能开始时间e和最迟允许开始时间l,根据l-e=0?
来确定关键活动,从而确定关键路径。
1
2
3
4
5
6
Ve
0
19
15
29
38
43
Vl
0
19
15
37
38
43
<1,2>
<1,3>
<3,2>
<2,4>
<2,5>
<3,5>
<4,6>
<5,6>
e
0
0
15
19
19
15
29
38
l
17
0
15
27
19
27
37
38
l-e
17
0
0
8
0
12
8
0
此项目最早完成时间为43。
关键路径为<1,3><3,2><2,5><5,6>
3.算法设计题
<1)分别以邻接矩阵和邻接表作为存储结构,实现以下图的基本操作:
增添一个新顶点v,InsertVex(G,v>;
删除顶点v及其相关的边,DeleteVex(G,v>。
增加一条边
删除一条边
//本题中的图G均为有向无权图,其余情况容易由此写出
StatusInsert_Vex(MGraph&G,charv>//在邻接矩阵表
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 结构 语言版 第章图