数据结构第7章
《数据结构(C语言版 第2版)》(严蔚敏 著)第七章练习题答案
《数据结构(C语言版第2版)》(严蔚敏著)
第七章练习题答案
第7章查找
1.选择题
(1)对n个元素的表做顺序查找时,若查找每个元素的概率相同,则平均查找长度为()。
A.(n-1)/2B.n/2C.(n+1)/2D.n
答案:C
解释:总查找次数N=1+2+3+…+n=n(n+1)/2,则平均查找长度为N/n=(n+1)/2。
(2)适用于折半查找的表的存储方式及元素排列要求为()。
A.链接方式存储,元素无序B.链接方式存储,元素有序
C.顺序方式存储,元素无序D.顺序方式存储,元素有序
答案:D
解释:折半查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列。
(3)如果要求一个线性表既能较快的查找,又能适应动态变化的要求,最好采用()查找
法。
A.顺序查找B.折半查找
C.分块查找D.哈希查找
答案:C
解释:分块查找的优点是:在表中插入和删除数据元素时,只要找到该元素对应的块,就
可以在该块内进行插入和删除运算。由于块内是无序的,故插入和删除比较容易,无需进行大量
移动。如果线性表既要快速查找又经常动态变化,则可采用分块查找。
(4)折半查找有序表(4,6,10,12,20,30,50,70,88,100)。若查找表中元素58,
则它将依次与表中()比较大小,查找结果是失败。
A.20,70,30,50B.30,88,70,50
C.20,50D.30,88,50
答案:A
解释:表中共10个元素,第一次取⎣(1+10)/2⎦=5,与第五个元素20比较,58大于20,再
取⎣(6+10)/2⎦=8,与第八个元素70比较,依次类推再与30、50比较,最终查找失败。
数据结构(C++版)课后答案 (王红梅)第7章 查找技术
第 7 章查找技术
课后习题讲解
1. 填空题
⑴顺序查找技术适合于存储结构为()的线性表,而折半查找技术适用于存储结构为()的线性表,并且表中的元素必须是()。
【解答】顺序存储和链接存储,顺序存储,按关键码有序
⑵设有一个已按各元素值排好序的线性表,长度为125,用折半查找与给定值相等的元素,若查找成功,则至少需要比较()次,至多需比较()次。
【解答】1,7
【分析】在折半查找判定树中,查找成功的情况下,和根结点的比较次数最少,为1次,最多不超过判定树的深度。
⑶对于数列{25,30,8,5,1,27,24,10,20,21,9,28,7,13,15},假定每个结点的查找概率相同,若用顺序存储结构组织该数列,则查找一个数的平均比较次数为()。若按二叉排序树组织该数列,则查找一个数的平均比较次数为()。
【解答】8,59/15
【分析】根据数列将二叉排序树画出,将二叉排序树中查找每个结点的比较次数之和除以数列中的元素个数,即为二叉排序树的平均查找长度。
⑷长度为20的有序表采用折半查找,共有()个元素的查找长度为3。
【解答】4
【分析】在折半查找判定树中,第3层共有4个结点。
⑸假定一个数列{25,43,62,31,48,56},采用的散列函数为H(k)=k mod 7,则元素48的同义词是()。【解答】62
【分析】H(48)= H(62)=6
⑹在散列技术中,处理冲突的两种主要方法是()和()。
【解答】开放定址法,拉链法
⑺在各种查找方法中,平均查找长度与结点个数无关的查找方法是()。
【解答】散列查找
【分析】散列表的平均查找长度是装填因子的函数,而不是记录个数n的函数。
数据结构习题及答案与实验指导(树和森林)7
第7章树和森林
树形结构是一类重要的非线性结构。树形结构的特点是结点之间具有层次关系。本章介绍树的定义、存储结构、树的遍历方法、树和森林与二叉树之间的转换以及树的应用等内容。
重点提示:
●树的存储结构
●树的遍历
●树和森林与二叉树之间的转换
7-1 重点难点指导
7-1-1 相关术语
1.树的定义:树是n(n>=0)个结点的有限集T,T为空时称为空树,否则它满足如下两个条件:①有且仅有一个特定的称为根的结点;②其余的结点可分为m(m>=0)个互不相交的子集T1,T2,…,T m,其中每个子集本身又是一棵树,并称为根的子树。
要点:树是一种递归的数据结构。
2.结点的度:一个结点拥有的子树数称为该结点的度。
3.树的度:一棵树的度指该树中结点的最大度数。如图7-1所示的树为3度树。
4.分支结点:度大于0的结点为分支结点或非终端结点。如结点a、b、c、d。
5.叶子结点:度为0的结点为叶子结点或终端结点。如e、f、g、h、i。
6.结点的层数:树是一种层次结构,根结点为第一层,根结点的孩子结点为第二层,…依次类推,可得到每一结点的层次。
7.兄弟结点:具有同一父亲的结点为兄弟结点。如b、c、d;e、f;h、i。
8.树的深度:树中结点的最大层数称为树的深度或高度。
9.有序树:若将树中每个结点的子树看成从左到右有次序的(即不能互换),则称该树为有序树,否则称为无序树。
10.森林:是m棵互不相交的树的集合。
7-1-2 树的存储结构
1.双亲链表表示法
以图7-1所示的树为例。
(1)存储思想:因为树中每个元素的双亲是惟一的,因此对每个元素,将其值和一个指向双亲的指针parent构成一个元素的结点,再将这些结点存储在向量中。
数据结构第七章课后习题答案 (1)
7_1
对于图题7.1(P235)的无向图,给出:
(1)表示该图的邻接矩阵。
(2)表示该图的邻接表。
(3)图中每个顶点的度。
解:
(1)邻接矩阵:
0111000
1001100
1001010
1110111
0101001
0011001
0001110
(2)邻接表:
1:2----3----4----NULL;
2: 1----4----5----NULL;
3: 1----4----6----NULL;
4: 1----2----3----5----6----7----NULL;
5: 2----4----7----NULL;
6: 3----4----7----NULL;
7: 4----5----6----NULL;
(3)图中每个顶点的度分别为:3,3,3,6,3,3,3。
7_2
对于图题7.1的无向图,给出:
(1)从顶点1出发,按深度优先搜索法遍历图时所得到的顶点序
(2)从顶点1出发,按广度优先法搜索法遍历图时所得到的顶点序列。
(1)DFS法:
存储结构:
本题采用邻接表作为图的存储结构,邻接表中的各个链表的结点形式由类型L_NODE规定,而各个链表的头指针存放在数组head中。
数组e中的元素e[0],e[1],…..,e[m-1]给出图中的m条边,e中结点形式由类型E_NODE规定。visit[i]数组用来表示顶点i是否被访问过。遍历前置visit各元素为0,若顶点i被访问过,则置visit[i]为1.
算法分析:
首先访问出发顶点v.接着,选择一个与v相邻接且未被访问过的的顶点w访问之,再从w 开始进行深度优先搜索。每当到达一个其所有相邻接的顶点都被访问过的顶点,就从最后访问的顶点开始,依次退回到尚有邻接顶点未曾访问过的顶点u,并从u开始进行深度优先搜索。
数据结构-第7章图答案
struct { VertexType adjvex; VRType lowcost; } closedge[MAX_VERTEX_NUM]; k = LocateVex ( G, u ); // 顶点u为构造生成树的起始点 for ( j=0; j<G.vexnum; ++j ) // 辅助数组初始化 if (j!=k) closedge[j] = { u, G.arcs[k][j].adj }; closedge[k].lowcost = 0; // 初始,U={u} for (i=0; i<G.vexnum; ++i) { //在其余顶点中选择 k = minimum(closedge); // 求出T的下一个结点(k) printf(closedge[k].adjvex, G.vexs[k]); // 输出生成树的边 closedge[k].lowcost = 0; // 第k顶点并入U集 for (j=0; j<G.vexnum; ++j) if (G.arcs[k][j].adj < closedge[j].lowcost) closedge[j] = { G.vexs[k], G.arcs[k][j].adj }; // 新顶点并入U后重新选择最小边 }
对邻接点的操作:
FirstAdjVex(G, v); // 返回v的第一个邻接点。若该顶点 //在G中没有邻接点,则返回“空”。 NextAdjVex(G, v, w); //返回v的(相对于w的)下一个 // 邻接点。若w是v的最后一个邻 // 接点,则返回“空”。 插入或删除顶点 InsertVex(&G, v); // 在图G中增添新顶点v。 DeleteVex(&G, v); // 删除G中顶点v及其相关的弧。
数据结构(C语言版)_第7章 图及其应用
(4)在邻接链表中,要确定两个顶点vi和vj之间是否有边或弧相连,需要 遍历第i个或第j个单链表,不像邻接矩阵那样能方便的对顶点进行随机访问。
7.3.2 邻接表
3.创建有向图和无向图邻接表的算法实现
下面分别介绍图的两种遍历方法:深度优先搜索和广度优先 搜索,这两种方法既适用于无向图也适用于有向图。
7.4.1 深度优先遍历
1.深度优先遍历的基本思想 深度优先遍历的思想类似于树的先序遍历,简称为DFS (Depth-First-Search)。其遍历过程基本思路如下:初始时 将图中的所有顶点标记为未被访问,从图中任选一个顶点vi出 发,访问该顶点并标记为已访问,然后访问任一个与vi邻接且 未被访问的邻接点vj,并标记vj为已访问,再从vj出发继续深 度优先遍历图中的其余顶点,重复这一过程,若到达某顶点不 存在未被访问过的邻接顶点时,则一直退回到最近被访问过的 且存在未被访问过的邻接顶点的那个顶点再进行深度优先遍历, 直至图中所有与vi有路径相通的顶点都被访问完为止。若此时 图中仍有未被访问的顶点,则另外选择一个未被访问的顶点, 从它出发,再进行深度优先遍历。直到图中的所有顶点都被访 问为止。可以看出,深度优先遍历是一个递归的过程,其特点 是尽可能地向纵深方向进行搜索。
7.4.1 深度优先遍历
数据结构第7章排序
7.1.4 希尔排序
• 算法评价 – 算法效率依赖于增量序列的选择 – 时间复杂度 在O(n3/2)到O(n7/6)之间 • 增量序列的取法 – 最后一个增量必须为1 – 其他增量间保持“互质”
7.2 分划类排序
• 分划类排序 – 通过一趟划分确定一个元素在序列中的位臵,保证在 它之前的一组元素不比它大,之后的不比它小,接着 对两组元素继续分划,直至待排序列有序。 • 应用分划类排序思想的算法 – 冒泡排序 – 快速排序
希尔排序例
34 28 81 79 22 16 55 24 99 64 46
设增量d=5
16 28 24 79 22 34 55 81 99 64 46
设增量d=3
16 22 24 55 28 34 64 46 99 79 81
设增量d=1
16 22 24 28 34 46 55 64 79 81 99
7.1.4 希尔排序
• 希尔排序算法
template<class ElemType> void ShellSort(ElemType data[], int increments[] , int n, int incrementsLength){ int i, j, k; ElemType tmp; for ( k = 0; k < incrementsLength; k++){ // 进行以increments[k]为增量的排序 for ( i = increments[k]; i < n; i++){ tmp = data[i]; for ( j = i; j >= increments[k]; j -= increments[k]){ if ( tmp >= data[j - increments[k]]) break; data[j] = data[j - increments[k]]; } data[j] = tmp; } } }
数据结构第七章 排序
结果
直接选择排序算法
void SelectSort(DataType R[ ],int N) { int i,j,small; 循环n-1次 DataType temp; /* 做 n-1 趟选择排序 */ for (i=1;i<N-1;i++) { small=i; /* 在无序区选关键字最小的记录R[small] */ for (j=i+1;j<N;j++) 寻找最小 if (R[j].key<R[small].key) small=j; 记录下标 if (small!=i) /*交换 R[i] 和 R[small] */ {temp=R[i];R[i]=R[small]; R[small]=temp;} } } 记录交换
希尔排序
基本思想:把待排序的数据元素分成若干个小 组,对同一小组内的数据元素用直接插入法排 序;小组的个数逐次缩小,当完成了所有数据 元素都在一个组内的排序后排序过程结束。 希尔排序是一种不稳定的排序方法。
直接选择排序
基本原理:将待排序的结点分为已排序( 初始 为空) 和未排序两组,依次将未排序的结点中 值最小的结点插入已排序的组中。 直接选择排序是一种不稳定的排序方法。
08 08
16 16
第三次
08
16
21
25* 25
49
《数据结构》第 7 章 图
A
B E
C D F E
A B
D
C
F
制作:计算机科学与技术学院 徐振中
▲
数据结构 7.2 图的存储结构 多重链表 v1
第七章 图
G1
v2 v4 ^
v1
v2 ^ ^
v1
v3
v2
v4
v1 v3
v2 v4
v1
v3
v2 v4
v4
v5
v4
v5
强连通图: 任意两个顶点都连通的有向图。 强连通分量:有向图的极大强连通子图;任何强连通 图的强连通分量只有一个,即其本身;非强连通图有多个 强连通分量。
制作:计算机科学与技术学院 徐振中
数据结构
第七章 图
生成树:所有顶点均由边连接在一起但不存在回路的图。 v1 v2 v1 v2 v1 v2 v1 v2 v1 v2
制作:计算机科学与技术学院 徐振中
数据结构 {引用型操作} LocateVex(G, u); 初始条件:图 G 存在,u 和 G 中顶点有相同特征。
第七章 图
操作结果:若 G 中存在和 u 相同的顶点,则返回该顶点 在图中的位置;否则返回其它信息。 若<v,w>∈G,则 GetVex(G, v); 称 w 为 v 的邻接点, 顶点在图中的“位置”指 初始条件:图 G 存在,v 是 G 中某个顶点。 若(v,w)∈G,则称 w 操作结果:返回 v 的值。 的是,在图的存储结构中顶 和 v 互为邻接点。 点之间自然形成的相对位置。 FirstAdjVex(G, v); 初始条件:图 G 存在,v 是 G 中某个顶点。
数据结构第七章--图(严蔚敏版)
1
Königsberg七桥问题
• 1736年 Euler研究了 所谓 Königsberg七桥 问题.
C
A
B
D
2011-10-13
(a)
2
Königsberg七桥问题
• 在18世纪哥尼斯堡是位于东普鲁士的一座城市,现 在属于立陶宛共和国,并更名为加里宁格勒.在通 过哥尼斯堡的的莱茵河 (pregel)上架有七座桥,把城 市分为四个部分A、B、C、D.星期天散步已成为当 地居民的一种习惯,很久以前当地居民热衷于一个 难题:是否能一次走遍七座桥,每座桥只允许走一 是否能一次走遍七座桥, 是否能一次走遍七座桥 最后回到原出发点. 次,最后回到原出发点.
①
②
①
②
①
②
④
⑤
④
⑤
④
⑤
2011-10-13
22
图的术语
生成树 连通图的生成树是一个极小连通子图,它含有 连通图的生成树是一个极小连通子图,
图中全部顶点,但只有足以构成一棵树的 条边 条边。 图中全部顶点,但只有足以构成一棵树的n-1条边。
2011-10-13
23
是非连通无向图, 条边, 例1:G是非连通无向图,共28条边,至少有多少个 : 是非连通无向图 条边 顶点? 顶点?
2011-10-13
与图的边或弧相关的数
数据结构作业第七章树
数据结构作业第7 章
1.假设每个结点值为单个字符,而一棵树的层次遍历序列为ABCDEFGHIJ,则其根结点的值是。
A.A B. B C. J D. 以上都不对
2.在一颗3 次树中度为3 的结点数为两个,度为2 的结点数为一个,度为1 的结点数为两个,则度为0 的结点数
为个。
A.4 B. 5 C. 6 D. 7
3 . 对于一棵具有n 个结点、度为
4 的树来说,。
A.树的高度最多是n-3
B. 树的高度最多是n-3
C. 第i 层上最多有4(i-1)个结点
D. 至少在某一层上正好有4 个结点
4.在任何一棵二叉树中,如果结点a 有左孩子b、右孩子c、则在结点的先序序列、中序序列、后序序列中,
。
A.结点b 一定在结点a 前面
B. 结点a 一定在结点c 前面
C. 结点b 一定在结点c 前面
D. 结点a 一定在结点b 前面
5.设a、b 为一颗二叉树上的两个结点,在中序序列时,a 在b 之前的条件是。
A.a 在b 的右方 B. a 是b 的祖先
C. a 在b 的左方
D. a 是b 的子孙
6.若二叉树的中序序列是abcdef,且c 为根结点,则。
A.结点c 有两个孩子
B. 二叉树有两个度为0 的结点
C. 二叉树的高度为5
D. 以上都不对
7.设有13 个值,用他们组成一颗哈夫曼树,则该哈夫曼树共有个结点。
A.13 B. 12 C.26 D. 25
8.在n 个结点的线索二叉树中(不计头结点),线索的数目为。
A.n-1
B. n
C. n+1
D. 2n
9.一棵度为2 的树中,其结点个数最少为。
10.设某棵树中结点值为单个字符,其后根遍历序列为ABCDEFG,则根结点值为。
数据结构第七章习题课
1、判定一个有向图是否存在回路,除了利用拓扑排序方法外,还可以利用( )
A 、求关键路径的方法
B 、求最短路径的Dijkstra 方法
C 、宽度优先遍历算法
D 、深度优先遍历算法 2.
图中有关路径的定义是( )o
A. 由顶点和相邻顶点序偶构成的边所形成的序列
B. 由不同顶点所形成的序列
C. 由不同边所形成的序列
D.
上述定义都不是
3. 一个n 个顶点的连通无向图,其边的个数至少为(
)
4. 当一个有N 个顶点的无向图用邻接矩阵 A 表示时,顶点Vi 的度是()
5. 下列说法不正确的是( )o
A. 图的遍历是从给定的源点出发每一个顶点仅被访问一次
B. 遍历的基本算法有两种:深度遍历和广度遍历
C. 图的深度遍历不适用于有向图
D. 图的深度遍历是一个递归过程
6. 无向图 G=(V,E),其中:V={a,b,c,d,e,f},
E={(a,b),(a,e),(a,c),(b,e),(c,f),(f,d),(e,d)},对该图进行深度优先遍历,得到的顶点序 列正确的是( )o
A . a,b,e,c,d,f
B . a,c,f,e,b,d
C . a,e,b,c,f,d
D . a,e,d,f,c,b 7. 设图如右所示,在下面的5个序列中,符合深度优先遍历的序列有多少?(
a e d f c
b a e f d
c b C . 3个
&在图采用邻接表存储时,求最小生成树的
A. O (n ) B O (n+e ) 9.已知有向图 G=(V,E),其中 V={V 1,V 2,V 3,V 4,V 5,V 6,V 7},
数据结构第7章-答案
一、单选题
C01、在一个图中,所有顶点的度数之和等于图的边数的倍。
A)1/2 B)1 C)2 D)4
B02、在一个有向图中,所有顶点的入度之和等于所有顶点的出度之和的倍。
A)1/2 B)1 C)2 D)4
B03、有8个结点的无向图最多有条边。
A)14 B)28 C)56 D)112
C04、有8个结点的无向连通图最少有条边。
A)5 B)6 C)7 D)8
C05、有8个结点的有向完全图有条边。
A)14 B)28 C)56 D)112
B06、用邻接表表示图进行广度优先遍历时,通常是采用来实现算法的。
A)栈B)队列C)树D)图
A07、用邻接表表示图进行深度优先遍历时,通常是采用来实现算法的。
A)栈B)队列C)树D)图
A08、一个含n个顶点和e条弧的有向图以邻接矩阵表示法为存储结构,则计算该有向图中某个顶点出度的时间复杂度为。
A)O(n) B)O(e) C)O(n+e) D)O(n2)
C09、已知图的邻接矩阵,根据算法思想,则从顶点0出发按深度优先遍历的结点序列是。
A)0 2 4 3 1 5 6 B)0 1 3 6 5 4 2 C)0 1 3 4 2 5 6 D)0 3 6 1 5 4 2
B10、已知图的邻接矩阵同上题,根据算法,则从顶点0出发,按广度优先遍历的结点序列是。
A)0 2 4 3 6 5 1 B)0 1 2 3 4 6 5 C)0 4 2 3 1 5 6 D)0 1 3 4 2 5 6
D11、已知图的邻接表如下所示,根据算法,则从顶点0出发按深度优先遍历的结点序列是。
A)0 1 3 2 B)0 2 3 1 C)0 3 2 1 D)0 1 2 3
数据结构(Java语言描述)第七章 查找
【算法7-2】顺序查找
public int Search_Seq(T key) {//顺序查找
int i;
ຫໍສະໝຸດ Baidu
ElemType<T> e=new ElemType<T>(key);
elem.add(length,e); //“哨兵”
for (i=0;elem.get(i).key.compareTo(key)!=0;++i) ;
数据项(值) 数据元素
一问题中作为整体进行考虑和处理的基本单位。
数据元素的关键字 关键字是数据元素中某数据项的值,用该值可以标 识一个数据元素。
3、查找 主关键字
次关键字
根据给定的某个值,在查找表中寻找一个其关键字
等于给定值的数据元素。(成功或失败)
4、查找表(search table)
由同一类型的数据元素构成的集合。查找表有如下
前者叫作最大查找长度(Maximun Search Length),即 MSL。后者叫作平均查找长度(Average Search Length) ,即ASL。
ASL的计算公式定义:
n
ASL pi Ci
i 1
其中,n为记录个数。Pi是查找第i条记录的概率
7.2 静态查找表
静态查找表一般以线性表表示。线性表结构可以是 顺序表结构,也可以是单链表结构。
数据结构第7章作业参考答案
第7章查找
一、单选
1.顺序查找法比较适合于(C )。
A. 数据有序的序列
B. 数据基本有序的序列
C. 数据无序的序列
D. 数据集比较大的序列
2.若查找每个记录的概率均等,则在具有n个记录的连续顺序文件中采用顺序查找法查找
一个记录,查找成功时平均查找长度ASL为(B )。
A. (n-1)/2
B. (n+1)/2
C. n/2
D. n
3.二分查找法适用于存储结构为(A )的线性表。
A. 顺序存储且按关键字有序
B. 链式存储且按关键字有序
C. 顺序存储或链式存储
D. 顺序存储且无序
4.采用分快查找时,数据的组织方式为( B )。
A.数据分成若干块,每块内数据有序
B.数据分成若干块,每块内数据不必有序,但块间必须有序,每块内最大(或最小)的数据组成索引块
C. 数据分成若干块,每块内数据有序,每块内最大(或最小)的数据组成索引块
D. 数据分成若干块,每块(除最后一块外)中数据个数需相同
5.设有一个已按各元素的值排好序的顺序表(长度大于2),现分别用顺序查找法和二分查
找法查找与给定值k 相等的元素,比较的次数分别是s 和b,在查找不成功的情况下,s 和b的关系是(C )。
A. s=b
B. s<b
C. s>b
D. s>=b
6.设顺序存储的线性表共有123个元素,按分块查找的要求等分成3块。若对索引表采用
顺序查找来确定块,并在确定的块中进行顺序查找,则在查找概率相等的情况下,分块查找成功时的平均查找长度为(B )。
A. 41
B. 23
C. 21
D. 62
7.含n个关键字的二叉排序树的平均查找长度主要取决于( C )。
数据结构第7章习题答案
第7章 《图》习题参考答案
一、单选题(每题1分,共16分)
( C )1. 在一个图中,所有顶点的度数之和等于图的边数的倍。
A .1/2 B. 1 C. 2 D. 4 (
B )2. 在一个有向图中,所有顶点的入度之和等于所有顶点的出度之和的倍。 A .1/2 B. 1 C. 2 D. 4 ( B )3. 有8个结点的无向图最多有条边。
A .14 B. 28 C. 56 D. 112 ( C )4. 有8个结点的无向连通图最少有条边。
A .5 B. 6 C. 7 D. 8 ( C )5. 有8个结点的有向完全图有条边。
A .14 B. 28 C. 56 D. 112 (
B )6. 用邻接表表示图进行广度优先遍历时,通常是采用来实现算法的。
A .栈 B. 队列 C. 树 D. 图 ( A )7. 用邻接表表示图进行深度优先遍历时,通常是采用来实现算法的。
A .栈 B. 队列 C. 树 D. 图
( C )8. 已知图的邻接矩阵,根据算法思想,则从顶点0出发按深度优先遍历的结点序列是
( D )9. 已知图的邻接矩阵同上题8,根据算法,则从顶点0出发,按深度优先遍历的结点序列是
A . 0 2 4 3 1 5 6 B. 0 1 3 5 6 4 2 C. 0 4 2 3 1 6 5 D. 0 1 23465 ( D )10. 已知图的邻接表如下所示,根据算法,则从顶点0出发按深度优先遍历的结点序列是
( A )11. 已知图的邻接表如下所示,根据算法,则从顶点0出发按广度优先遍历的结点序列是
A .0 2 4 3 1 5 6
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据结构第7章-图习题
第7章图
一、单项选择题
1.在一个无向图G中,所有顶点的度数之和等于所有边数之和的______倍。
A.l/2 B.1
C.2 D.4
2.在一个有向图中,所有顶点的入度之和等于所有顶点的出度之和的______倍。
A.l/2 B.1
C.2 D.4
3.一个具有n个顶点的无向图最多包含______条边。
A.n B.n+1
C.n-1 D.n(n-1)/2
4.一个具有n个顶点的无向完全图包含______条边。
A.n(n-l) B.n(n+l)
C.n(n-l)/2 D.n(n-l)/2
5.一个具有n个顶点的有向完全图包含______条边。
A.n(n-1) B.n(n+l)
C.n(n-l)/2 D.n(n+l)/2
6.对于具有n个顶点的图,若采用邻接矩阵表示,则该矩阵的大小为______。
A.n B.n×n
C.n-1 D.(n-l) ×(n-l)
7.无向图的邻接矩阵是一个______。
A.对称矩阵B.零矩阵
C.上三角矩阵D.对角矩阵
8.对于一个具有n个顶点和e条边的无(有)向图,若采用邻接表表示,则表头向量的大小为______。
A.n B.e
C.2n D.2e
9.对于一个具有n个顶点和e条边的无(有)向图,若采用邻接表表示,则所有顶点邻接表中的结点总数为______。
A.n B.e
C.2n D.2e
10.在有向图的邻接表中,每个顶点邻接表链接着该顶点所有______邻接点。
A.入边B.出边
C.入边和出边D.不是入边也不是出边
11.在有向图的逆邻接表中,每个顶点邻接表链接着该顶点所有______邻接点。
A.入边B.出边
C.入边和出边D.不是人边也不是出边
12.如果从无向图的任一顶点出发进行一次深度优先搜索即可访问所有顶点,则该图一定是______。
A.完全图B.连通图
C.有回路D.一棵树
13.采用邻接表存储的图的深度优先遍历算法类似于二叉树的______算法。
A.先序遍历B.中序遍历
C.后序遍历 D.按层遍历
14.采用邻接表存储的图的广度优先遍历算法类似于二叉树的______算法。
A.先序遍历B.中序遍历
C.后序遍历 D.按层遍历
15.如果无向图G必须进行二次广度优先搜索才能访问其所有顶点,则下列说法中不正确的是______。
A.G肯定不是完全图B.G一定不是连通图
C.G中一定有回路D.G有二个连通分量
16.下列有关图遍历的说法不正确的是______。
A.连通图的深度优先搜索是一个递归过程
B.图的广度优先搜索中邻接点的寻找具有“先进先出”的特征
C.非连通图不能用深度优先搜索法
D.图的遍历要求每一顶点仅被访问一次
17.下列说法中不正确的是______。
A.无向图中的极大连通子图称为连通分量
B.连通图的广度优先搜索中一般要采用队列来暂存刚访问过的顶点
C.图的深度优先搜索中一般要采用栈来暂存刚访问过的顶点
D.有向图的遍历不可采用广度优先搜索方法
18.一个有向图G的邻接表存储如下图7-1所示,现按深度优先搜索遍历,从顶点v1出发,所得到的顶点序列是______。
A.v1,v2,v3,v4,v5B.v1,v2,v3,v5,v4
C.v1,v2,v4,v5,v3D.v1,v2,v5,v3,v4
图7-1 一个有向图的邻接表
19.对图7-2所示的无向图,从顶点1开始进行深度优先遍历,可得到顶点访问序列______。
A.1,2,4,3,5,7,6 B.1,2,4,3,5,6,7
C.1,2,4,5,6,3,7 D.1,2,3,4,5,7,6
图7-2 一个无向图
20.对图7-2所示的无向图,从顶点1开始进行广度优先遍历,可得到顶点访问序列______。
A.1,3,2,4,5,6,7 B.1,2,4,3,5,6,7
C.1,2,3,4,5,7,6 D.2,5,1,4,7,3,6
21.一个无向连通图的生成树是含有该连通图的全部顶点的______。
A.极小连通子图B.极小子图
C.极大连通子图D.极大子图
22.设无向图G=(V, E) 和G’= (V’, E’),如果G’为G的生成树,则下列说法中不正确的是______。
A.G’为G的连通分量B.G’为G的无环子图
C.G’为G的子图D.G’为G的极小连通子图且V’=V 23.任意一个无向连通图______最小生成树。
A.只有一棵B.有一棵或多棵
C.一定有多棵D.可能不存在
24.对于含有n个顶点的带权连通图,它的最小生成树是指图中任意一个________。
A.由n-1条权值最小的边构成的子图。
B.由n-1条权值之和最小的边构成的子图。
C.由n-1条权值之和最小的边构成的连通子图。
D.由n个顶点构成的边的权值之和最小的生成树。
25.若一个有向图中的顶点不能排成一个拓扑序列,则可断定该有向图_______。
A.是个有根有向图B.是个强连通图
C.含有多个入度为0的顶点D.含有顶点数目大于1的强连通分量26.判定一个有向图是否存在回路除了可以利用拓扑排序方法外,还可以用____。
A.求关键路径的方法 B.求最短路径的Dijkstra算法
C.广度优先遍历算法 D.深度优先遍历算法
27.求最短路径的Dijkstra算法的时间复杂度为______。
A.O(n) B.O(n+e)
C.O(n2) D.O(ne)
28.求最短路径的Floyd算法的时间复杂度为______。
A.O(n) B.O(ne)