ImageVerifierCode 换一换
格式:DOCX , 页数:23 ,大小:154.93KB ,
资源ID:3920228      下载积分:12 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/3920228.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(数据结构练习答案.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

数据结构练习答案.docx

1、数据结构练习答案第8章 图一、单项选择题 1.在一个具有n个顶点的有向图中,若所有顶点的出度数之和为s,则所有顶点的入度数之和为(A)。As Bs-1 Cs+1 Dn2.在一个具有n个顶点的无向图中,若具有e条边,则所有顶点的度数之和为( D )。An Be Cn+e D2e3.在一个具有n个顶点的无向完全图中,所含的边数为( C )。An Bn(n-1) Cn(n-1)/2 Dn(n+1)/24.在一个具有n个顶点的有向完全图中,所含的边数为( B )。An Bn(n-1) Cn(n-1)/2 Dn(n+1)/25.在一个无向图中,若两顶点之间的路径长度为k,则该路径上的顶点数为( B )。

2、Ak Bk+1 Ck+2 D2k6.对于一个具有n个顶点的无向连通图,它包含的连通分量的个数为( B )。A0 B1 Cn Dn+17.若一个图中包含有k个连通分量,若要按照深度优先搜索的方法访问所有顶点,则必须调用( A )次深度优先搜索遍历的算法。Ak B1 Ck-1 Dk+18.若要把n个顶点连接为一个连通图,则至少需要( C )条边。An Bn+1 Cn-1 D2n9.在一个具有n个顶点和e条边的无向图的邻接矩阵中,表示边存在的元素(又称为有效元素)的个数为( D )。An Bne Ce D2e10.在一个具有n个顶点和e条边的有向图的邻接矩阵中,表示边存在的元素个数为( C )。An

3、 Bne Ce D2e11.在一个具有n个顶点和e条边的无向图的邻接表中,边结点的个数为( D )。An Bne Ce D2e12.在一个具有n个顶点和e条边的有向图的邻接表中,保存顶点单链表的表头指针向量的大小至少为( A )。An B2n Ce D2e13.在一个无权图的邻接表表示中,每个边结点至少包含( B )域。A1 B2 C3 D414.对于一个有向图,若一个顶点的度为k1,出度为k2,则对应邻接表中该顶点单链表中的边结点数为( B )。Ak1 Bk2 Ck1-k2 Dk1+k215.对于一个有向图,若一个顶点的度为k1,出度为k2,则对应逆邻接表中该顶点单链表中的边结点数为( C

4、)。Ak1 Bk2 Ck1-k2 Dk1+k216.对于一个无向图,下面( A )说法是正确的。A每个顶点的入度等于出度B每个顶点的度等于其入度与出度之和C每个顶点的入度为0 D每个顶点的出度为017.在一个有向图的邻接表中,每个顶点单链表中结点的个数等于该顶点的( A )。A出边数 B入边数 C度数 D度数减118.若一个图的边集为(A, B), (A, C), (B, D), (C, F), (D, E), (D, F),则从顶点A开始对该图进行深度优先搜索,得到的顶点序列可能为( B )。AA, B, C, F, D, E BA, C, F, D, E, BCA, B, D, C, F,

5、 E DA, B, D, F, E, C19.若一个图的边集为(A, B), (A, C), (B, D), (C, F), (D, E), (D, F),则从顶点A开始对该图进行广度优先搜索,得到的顶点序列可能为( D )。AA, B, C, D, E, F BA, B, C, F, D, ECA, B, D, C, E, F DA, C, B, F, D, E20.若一个图的边集为, , , , , ,则从顶点1开始对该图进行深度优先搜索,得到的顶点序列可能为( A )。A1,2,5,4,3 B1,2,3,4,5 C1,2,5,3,4 D1,4,3,2,521.若一个图的边集为, , ,

6、, , ,则从顶点1开始对该图进行广度优先搜索,得到的顶点序列可能为( C )。A1,2,3,4,5 B1,2,4,3,5 C1,2,4,5,3 D1,4,2,5,322.由一个具有n个顶点的连通图生成的最小生成树中,具有( B )条边。An Bn-1 Cn+1 D2n23.已知一个有向图的边集为, , , , , ,则由该图产生的一种可能的拓扑序列为( A )。Aa, b, c, d, e Ba, b, d, e, bCa, c, b, e, d Da, c, d, b, e二、填空题 1.在一个图中,所有顶点的度数之和等于所有边数的 2 倍。2.在一个具有n个顶点的无向完全图中,包含有 n

7、(n - 1)/2 条边,在一个具有n个顶点的有向完全图中,包含有 n(n - 1) 条边。3.假定一个有向图的顶点集为a,b,c,d,e,f,边集为, , , , , ,则出度为0的顶点个数为 2 ,入度为1的顶点个数为 4 。4.在一个具有n个顶点的无向图中,要连通所有顶点则至少需要 n - 1 条边。5.表示图的三种种存储结构为 邻接矩阵 、 邻接表 和 邻接多重表 。6.在一个连通图中存在着 1 个连通分量。7.图中的一条路径长度为k,该路径所含的顶点数为 k+1 。8.若一个图的顶点集为a, b, c, d, e, f,边集为(a, b), (a, c), (b, c), (d, e

8、),则该图含有 3 个连通分量。9.对于一个具有n个顶点的图,若采用邻接矩阵表示,则矩阵大小至少为 n n 。10.对于具有n个顶点和e条边的无向图,在它们对应的邻接表中,所含顶点个数和边结点的个数分别为 n 和 2e 。11.对于具有n个顶点和e条边的有向图,在它们对应的邻接表中,所含顶点个数和边结点的个数分别为 n 和 e 。12.在有向图的邻接表和逆邻接表表示中,每个顶点邻接表分别链接着该顶点的所有 出边 和 入边 结点。13.对于一个具有n个顶点和e条边的无向图,当分别采用邻接矩阵和邻接表表示时,求任一顶点度数的时间复杂度分别为 O(n) 和 O(e) 。14.假定一个图具有n个顶点和

9、e条边,则采用邻接矩阵和邻接表表示时,其相应的空间复杂度分别为 O(n2) 和 O(n+2e) 。15.图的 深度 优先搜索遍历算法是一种递归算法,图的 广度 优先搜索遍历算法需要使用队列。16.对于一个具有n个顶点和e条边的连通图,其生成树中的顶点数和边数分别为 n 和 n-1 。17.若一个连通图中每个边上的权值均不同,则得到的最小生成树是 唯一 (唯一/不唯一)的。根据图的存储结构进行某种次序的遍历,得到的顶点序列是 不唯一 (唯一/不唯一)的。18.假定一个有向图的边集为, , , , , ,对该图进行拓扑排序得到的顶点序列为 aebdcf 。三、应用题1.对于一个无向图,假定采用邻接

10、矩阵表示,试分别写出从顶点0出发按深度优先搜索遍历得到的顶点序列和按广度优先搜索遍历得到的顶点序列。注:每一种序列都是唯一的,因为都是在存储结构上得到的。解答:深度优先搜索序列:0, 2, 3, 5, 6, 1, 4广度优先搜索序列:0, 2, 3, 5, 6, 1, 42.对于一个有向图,假定采用邻接表表示,并且假定每个顶点单链表中的边结点是按出边邻接点序号从大到小的次序链接的,试分别写出从顶点0出发按深度优先搜索遍历得到的顶点序列和按广度优先搜索遍历得到的顶点序列。注:每一种序列都是唯一的,因为都是在存储结构上得到的。解答:深度优先搜索序列:0, 3, 6, 4, 1, 5, 2广度优先搜

11、索序列:0, 3, 2, 6, 5, 4, 13.已知下图所示的一个网,(1)按照Prim方法,从顶点1 出发,求该网的最小生成树的产生过程。(2)按照Kruskal方法,求该网的最小生成树的产生过程。解答:(1) (2)4.下图所示为一个有向网图及其带权邻接矩阵,要求对有向图采用Dijkstra算法,求从V0 到其余各顶点的最短路径。解答:终点从v0到各终点的D值和最短路径的求解过程i = 1i = 2i = 3i = 4i = 5V1无V210(v0,v2)V360(v0,v2,v3)50(v0,v4,v3)V430(v0,v4)30(v0,v4)V5100(v0,v5)100(v0,v5

12、)90(v0,v4,v5)60(v0,v4,v3,v5)VjV2V4V3V5Sv0,v2v0,v2,v4v0,v2,v3,v4v0,v2,v3,v4,v55.上图给出了一个具有15个活动、11个事件的工程的AOE网,求关键路径。解答: 事件的最早发生时间vek:ve(1) = 0 ve(2) = 3 ve(3) = 4ve(4) = ve(2) + 2 = 5ve(5) = maxve(2) + 1, ve(3) + 3 = 7ve(6) = ve(3) + 5 = 9ve(7) = maxve(4) + 6, ve(5) + 8 = 15ve(8) = ve(5) + 4 = 11ve(9)

13、 = maxve(8) + 10, ve(6) + 2 = 21ve(10) = maxve(8) + 4, ve(9) + 1 = 22ve(11) = maxve(7) + 7, ve(10) + 6 = 28事件的最迟发生时间vlk:vl(11) = ve(11) = 28 vl(10) = vl(11) 6 = 22vl(9) = vl(10) 1 = 21vl(8) = min vl(10) - 4, vl (9) - 10 = 11vl(7) = vl(11) 7 = 21 vl(6) = vl(9) 2 = 19vl(5) = min vl(7) - 8, vl(8) - 4 =

14、 7vl(4) = vl(7) 6 = 15vl(3) = min vl(5) - 3, vl(6) - 5 = 4vl(2) = min vl(4) - 2, vl(5) - 1 = 6vl(1) = minvl(2) - 3, vl(3) - 4 = 0活动ai的最早开始时间ei和最晚开始时间li:活动a1:e(1) = ve(1) = 0 l(1) = vl(2) 3 = 3活动a2:e(2) = ve(1) = 0 l(2) = vl(3) 4 = 0活动a3:e(3) = ve(2) = 3 l(3) = vl(4) 2 = 13活动a4:e(4) = ve(2) = 3 l(4)

15、= vl(5) 1 = 6活动a5:e(5) = ve(3) = 4 l(5) = vl(5) 3 = 4活动a6:e(6) = ve(3) = 4 l(6) = vl(6) 5 = 14活动a7:e(7) = ve(4) = 5 l(7) = vl(7) 6 = 15活动a8:e(8) = ve(5) = 7 l(8) = vl (7) 8 = 13活动a9:e(9) = ve(5) = 7 l(9) = vl(8) 4 = 7活动a10: e(10) = ve(6) = 9l(10) = vl (9) 2 = 19活动a11: e(11) = ve(7) = 15l(11) = vl(11

16、) 7 = 21活动a12: e(12) = ve(8) = 11l(12) = vl(10) 4 = 18活动a13: e(13) = ve(8) = 11l(13) = vl(9) 10 = 11活动a14: e(14) = ve(9) = 21l(14) = vl(10) -1 = 21活动a15: e(15) = ve(10) = 22l(15) = vl(11) - 6 = 22最后,比较ei和li的值可判断出a2, a5, a9, a13, a14, a15是关键活动,关键路径如下图所示。第9章 排序一、单项选择题1.若对n个元素进行直接插入排序,在进行第i趟排序时,假定元素ri+

17、1的插入位置为rj,则需要移动元素的次数为( D )。Aj-i Bi-j-1 Ci-j Di-j+12.若对n个元素进行直接插入排序,则进行任一趟排序的过程中,为寻找插入位置而需要的时间复杂度为( B )。AO(1) BO(n) CO(n2) DO(log2n)3.在对n个元素进行直接插入排序的过程中,共需要进行( C )趟。An Bn+1 Cn-1 D2n4.对n个元素进行直接插入排序时间复杂度为(C)。AO(1) BO(n) CO(n2) DO(log2n)5.在对n个元素进行冒泡排序的过程中,第一趟排序至多需要进行( B )对相邻元素之间的交换。An Bn-1 Cn+1 Dn/26.在对

18、n个元素进行冒泡排序的过程中,最好情况下的时间复杂度为( D )。AO(1) BO(log2n) CO(n2) DO(n)7.在对n个元素进行快速排序的过程中,第一次划分最多需要移动( D )次元素,包括开始把支点元素移动到临时变量的一次在内。An/2 Bn-1 Cn Dn+18.在对n个元素进行快速排序的过程中,最好情况下需要进行( C )躺。An Bn/2 Clog2n D2n9.在对n个元素进行快速排序的过程中,最坏情况下需要进行( B )躺。An Bn-1 Cn/2 Dlog2n10.在对n个元素进行快速排序的过程中,平均情况下的时间复杂度为( D )。AO(1) BO(log2n)

19、CO(n2) DO(nlog2n)11.在对n个元素进行快速排序的过程中,最坏情况下的时间复杂度为( C )。AO(1) BO(log2n) CO(n2) DO(nlog2n)12.在对n个元素进行快速排序的过程中,平均情况下的空间复杂度为( D )。AO(1) BO(log2n) CO(n2) DO(nlog2n)13.在对n个元素进行直接插入排序的过程中,算法的空间复杂度为( A )。AO(1) BO(log2n) CO(n2) DO(nlog2n)14.对下列四个序列进行快速排序,各以第一个元素为基准进行第一次划分,则在该次划分过程中需要移动元素次数最多的序列为( D )。A1, 3,

20、5, 7, 9 B9, 7, 5, 3, 1C5, 3, 1, 7, 9 D5, 7, 9, 1, 315.假定对元素序列(7, 3, 5, 9, 1, 12, 8, 15)进行快速排序,则进行第一次划分后,得到的左区间中元素的个数为( B )。A2 B3 C4 D516.在对n个元素进行简单选择排序的过程中,需要进行( C )趟选择和交换。An Bn+1 Cn-1 Dn/217.在对n个元素进行堆排序的过程中,时间复杂度为( D )。AO(1) BO(log2n) CO(n2) DO(nlog2n)18.在对n个元素进行堆排序的过程中,空间复杂度为( A )。AO(1) BO(log2n)

21、CO(n2) DO(nlog2n)19.假定对元素序列(7, 3, 5, 9, 1, 12)进行堆排序,采用小根堆,则初始数据构成的初始堆为( B )。A1, 3, 5, 7, 9, 12 B1, 3, 5, 9, 7, 12C1, 7, 3, 5, 9, 12 D1, 3, 5, 7, 9, 1220.假定一个初始堆为(1, 5, 3, 9, 12, 7, 15, 10),则进行第一趟堆排序后得到的结果为( A )。A3, 5, 7, 9, 12, 10, 15, 1B3, 5, 9, 7, 12, 10, 15, 1C3, 7, 5, 9, 12, 10, 15, 1D3, 5, 7, 1

22、2, 9, 10, 15, 121.若对n个元素进行归并排序,则进行归并的趟数为( D )。An Bn-1 Cn/2 Dlog2n22.若一个元素序列基本有序,则选用( A )法较快。A直接插入排序 B希尔排序C堆排序 D快速排序23.若要对1000个元素排序,要求既快又稳定,则最好采用( B )方法。A直接插入排序 B归并排序C堆排序 D快速排序24.若要对1000个元素排序,要求既快又节省存储空间,则最好采用( C )方法。A直接插入排序 B归并排序C堆排序 D快速排序25.在平均情况下速度最快的排序方法为( D )。A简单选择排序 B归并排序C堆排序 D快速排序二、填空题1.每次从无序子

23、表中取出一个元素,把它插入到有序子表中的适当位置,此种排序方法叫做 直接插入 排序;每次从无序子表中挑选出一个最小或最大元素,把它交换到有序表的一端,此种排序方法叫做 选择 排序。2.每次直接或通过支点元素间接比较两个元素,若出现逆序排列时就交换它们的位置,此种排序方法叫做 快速 排序;每次使两个相邻的有序表合并成一个有序表的排序方法叫做 归并 排序。3.在简单选择排序中,记录比较次数的时间复杂度为 O(n2) ,记录移动次数的时间复杂度为 O(n)。4.对n个记录进行冒泡排序时,最少的比较次数为 n - 1 ,最少的趟数为 1 。5.快速排序在平均情况下的时间复杂度为 O(nlog2n),在

24、最坏情况下的时间复杂度为 O(n2) 。6.若对一组记录(46, 79, 56, 38, 40, 80, 35, 50, 74)进行直接插入排序,当把第8个记录插入到前面已排序的有序表时,为寻找插入位置需比较 4 次。7.假定一组记录为(46, 79, 56, 38, 40, 84),则利用堆排序方法建立的初始小根堆为 (38, 40, 56, 79, 46, 84) 。8.假定一组记录为(46, 79, 56, 38, 40, 84),在冒泡排序的过程中进行第一趟排序后的结果为 (46, 56, 38, 40, 79, 84) 。9.假定一组记录为(46, 79, 56, 64, 38, 4

25、0, 84, 43),在冒泡排序的过程中进行第一趟排序时,元素79将最终下沉到其后第 4 个元素的位置(从0开始)。10.假定一组记录为(46, 79, 56, 38, 40, 80),对其进行快速排序的过程中,共需要 3 趟排序。11.假定一组记录为(46, 79, 56, 25, 76, 38, 40, 80),对其进行快速排序的第一次划分后,右区间内元素的个数为 4 。12.假定一组记录为(46, 79, 56, 38, 40, 80),对其进行快速排序的第一次划分后的结果为 40, 38 46 56, 79, 80 。13.假定一组记录为(46, 79, 56, 38, 40, 80,

26、 46, 75, 28, 46),对其进行归并排序的过程中,第二趟归并后的子表个数为 3 。14.假定一组记录为(46, 79, 56, 38, 40, 80, 46, 75, 28, 46),对其进行归并排序的过程中,第三趟归并后的第2个子表为 28, 46 。15.假定一组记录为(46, 79, 56, 38, 40, 80, 46, 75, 28, 46),对其进行归并排序的过程中,供需要 4 趟完成。16.在时间复杂度为O(nlog2n)的所有排序方法中, 归并 排序方法是稳定的。17.在时间复杂度为O(n2)的所有排序方法中, 直接选择 排序方法是不稳定的。18.在所有排序方法中,

27、快速 排序方法采用的是二分法的思想。19.在所有排序方法中, 堆排序 方法使数据的组织采用的是完全二叉树的思想。20.在所有排序方法中, 归并排序 方法采用的是两两有序表合并的思想。21. 冒泡 排序方法使键值大的记录逐渐下沉,使键值小的记录逐渐上浮。22. 直接插入 排序方法能够每次使无序表中的第一个记录插入到有序表中。23. 直接选择 排序方法能够每次从无序表中顺序查找出一个最小值。三、应用题已知一组记录为(46, 74, 53, 14, 26, 38, 86, 65, 27, 34),给出采用下列各种排序法进行排序时每一趟的排序结果:(1)直接插入法,(2)冒泡排序法,(3)快速排序法,

28、(4)简单选择排序法,(5)堆排序法,(6)归并排序法。解答:(1)直接插入排序(0) 46 74 53 14 26 38 86 65 27 34(1) 46 74 53 14 26 38 86 65 27 34(2) 46 53 74 14 26 38 86 65 27 34(3) 14 46 53 74 26 38 86 65 27 34(4) 14 26 46 53 74 38 86 65 27 34(5) 14 26 38 46 53 74 86 65 27 34(6) 14 26 38 46 53 74 86 65 27 34(7) 14 26 38 46 53 65 74 86 2

29、7 34(8) 14 26 27 38 46 53 65 74 86 34(9) 14 26 27 34 38 46 53 65 74 86(2)冒泡排序法(0) 46 74 53 14 26 38 86 65 27 34(1) 46 53 14 26 38 74 65 27 34 86(2) 46 14 26 38 53 65 27 34 74 86(3) 14 26 38 46 53 27 34 65 74 86(4) 14 26 38 46 27 34 53 65 74 86(5) 14 26 38 27 34 46 53 65 74 86(6) 14 26 27 34 38 46 53 65 74 86

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1