中国大学MOOC-陈越、何钦铭-数据结构-2019夏期中考试+解析


判断题


1-1 用邻接矩阵法存储图,占用的存储空间数只与图中结点个数有关,而与边数无关。 (3分)TRUE

[解析]:邻接矩阵是用一维数组存储图中顶点的信息,二维数组表示图中顶点之间的邻接关系。其中二维数组中的信息是点的信息,所以与边无关

邻接矩阵利用矩阵来表示每两个顶点之间的关系,所以只和顶点个数有关

邻接表保存顶点和其边的信息,所以和结点个数有关,与边数有关


1-2 如果无向图G必须进行两次广度优先搜索才能访问其所有顶点,则G一定有2个连通分量。 (3分) TRUE

[解析]:无向图G的极大连通子图称为G的最强连通分量   ① 任何连通图的连通分量只有一个,即是其自身  ② 非连通的无向图有多个连通分量。


1-3 在具有N个结点的单链表中,访问结点和增加结点的时间复杂度分别对应为O(1)和O(N)。 (3分)FALSE

[解析]:访问结点的时间复杂度与待查找的值有关,O((n-1)/2))也就是O(n)

增加结点前,需要先找到第i-1个结点。故查找时间为O(n),插入时间为O(1),所以增加结点时间为O(n)


1-4 在一棵由包含4、5、6等等一系列整数结点构成的二叉搜索树中,如果结点4和6在树的同一层,那么可以断定结点5一定是结点4和6的父亲结点。 (3分)FALSE

[解析]:5可能是4和6的祖先

例如:4是5的左孩子的右孩子,6是5的右孩子的左孩子


1-5 将1、2、3、4、5、6顺序插入初始为空的AVL树中,当完成这6个元素的插入后,该AVL树的先序遍历结果是:4、2、1、3、5、6。 (3分)TRUE

[解析]:教材定义:

平衡二叉树或者是空树,或者是具有如下特征的二叉排序树

1. 左子树和右子树的深度之差的绝对值不超过1

2. 左子树和右子树也是平衡二叉树


1-6 一棵有124个结点的完全二叉树,其叶结点个数是确定的。 (3分)TRUE

[解析]:满二叉树:深度为k且含有2^k-1个结点的二叉树

完全二叉树:深度为k的,有n个结点的二叉树,当且仅当其每一个结点都与深度为k的满二叉树中编号从1至n的结点一一对应时,称之满二叉树


1-7 通过对堆栈S操作:Push(S,1), Push(S,2), Pop(S), Push(S,3), Pop(S), Pop(S)。输出的序列为:123。 (3分)FALSE

[解析]:Push(S,1), Push(S,2),栈内从上到下为2,1

Pop(S),弹出栈顶元素2

Push(S,3),入栈3,栈内从上到下为3,1

Pop(S), Pop(S),弹出栈顶元素3,弹出栈顶元素1

因此输出的序列为:231


1-8 算法可以没有输入,但是必须有输出。 (2分)TRUE

[解析]:算法是为了解决某类问题而规定的一个有限长的操作序列

一个算法必须满足以下五种重要特性。

(1)有穷性。一个算法必须总是在执行有穷步后结束,且每一步都必须在有穷时间内完成。

(2)确定性。对于每种情况下所应执行的操作,在算法中都有确切的规定,不会产生二义性,使算法的执行者或阅读者都能明确其含义及如何执行。

(3)可行性。算法中的所有操作都可以通过已经实现的基本操作运算执行有限次来实现。

(4)输入。一个算法有零个或者多个输入。当用函数描述算法时,输入往往是通过形参表示的,在它们被调用时,从主调函数获得输入值。

(5)输出。一个算法有一个或多个输出,它们是算法进行信息加工后得到的结果,无输出的算法没有任何意义。当用函数描述算法时,输出多用返回值或引用类型的形参表示。


1-9 所谓“循环队列”是指用单向循环链表或者循环数组表示的队列。 (2分)FALSE

[解析]:错误,循环队列指的是后者,用数组表示的队列,利用求余运算使得头尾相接


1-10 已知一棵二叉树的先序遍历结果是ABC, 则CAB不可能是中序遍历结果。 (3分)TRUE

[解析]:先序遍历是ABC,那么A一定是根节点。

假设CAB是中序遍历结果,那么C是A的左节点,B是A的右节点。此时先序遍历结果是ACB,故假设不成立。


选择题


2-1 已知一棵完全二叉树的第6层(设根为第1层)有8个叶结点,则该完全二叉树的结点个数最多是: (4分)答案为111

  1. 39

  2. 52

  3. 111

  4. 119

[解析]:第6层有32个结点,其中8个为叶结点,则24个是有孩子的结点。

问题是最多有多少结点,那么第7层最多有48个结点。

总共最多的结点:前6层的共有2^6-1个结点 + 第7层最多的48个结点 = (64-1)+ 48 = 111


2-2 在并查集问题中,已知集合元素0~8所以对应的父结点编号值分别是{ 1, -4, 1, 1, -3, 4, 4, 8, -2 }(注:−n表示树根且对应集合大小为n),那么将元素6和8所在的集合合并(要求必须将小集合并到大集合)后,该集合对应的树根和父结点编号值分别是多少? (4分)答案为4和-5

  1. 1和-6

  2. 4和-5

  3. 8和-5

  4. 8和-6

[解析]:因为小集合合并到大集合,456为大集合,89为小集合。所以结果如下。树根为4,对应集合大小为5,父节点编号值为-5。


2-3 三叉树中,度为1的结点有5个,度为2的结点3个,度为3的结点2个,问该树含有几个叶结点? (4分)答案为8

  1. 8

  2. 10

  3. 12

  4. 13

[解析]:三叉树中结点总数 = 边数 + 1 = (15)+(23)+(3*2)+ 1 = 18

结点总数 = 度为0的结点n0 + 度为1的结点n1 + 度为2的结点n2 +度为3的结点n3 = n0 + 5 + 3 + 2 = n0 + 10

由上可推,n0 + 10 = 18,故n0 = 8


2-4 循环顺序队列中是否可以插入下一个元素()。 (4分)答案为与队头指针和队尾指针的值有关

  1. 与队头指针和队尾指针的值有关

  2. 只与队尾指针的值有关,与队头指针的值无关

  3. 只与数组大小有关,与队首指针和队尾指针的值无关

  4. 与曾经进行过多少次插入操作有关

[解析]教材中判断队满操作,方法一:尾指针在循环意义上+1后是等于头指针

方法二:另设一个标志位以区别队列是空是满


2-5

若某图的深度优先搜索序列是{V1, V4, V0, V3, V2},则下列哪个图不可能对应该序列? (4分)答案为第三个图

[解析]:第3个图的深度优先搜索序列是{V1, V4, V3, V0, V2}或者{V1, V0, V2, V4, V3}


2-6 假设有5个整数以1、2、3、4、5的顺序被压入堆栈,且出栈顺序为3、5、4、2、1,那么为了获得这样的输出,堆栈大小至少为: (4分)答案为4

  1. 2

  2. 3

  3. 4

  4. 5

[解析]:出栈3,则栈内从上到下为3,2,1,此时栈的大小为3

出栈5,则栈内从上到下为5,4,2,1,此时栈的大小为4

出栈4,则栈内从上到下为4,2,1,此时栈的大小为3

出栈2,则栈内从上到下为2,1,此时栈的大小为2

出栈1,则栈内从上到下为1,此时栈的大小为1

综上,堆栈大小至少为4


2-7 设一段文本中包含4个对象{a,b,c,d},其出现次数相应为{4,2,5,1},则该段文本的哈夫曼编码比采用等长方式的编码节省了多少位数? (4分)答案为2

  1. 0

  2. 2

  3. 4

  4. 5

[解析]:


2-8 下列代码

 for(i=0; i<n; i++)for(j=i; j>0; j/=2)printf(“%d\n”, j);

的时间复杂度是: (4分)答案为O(NlogN)

  1. O(N×i)

  2. O(N)

  3. O(N^2)

  4. O(NlogN)

[解析]:for(i=0; i<n; i++)执行了n次

for(j=i; j>0; j/=2)执行了logn次

printf(“%d\n”, j);执行了nlogn次,所以时间复杂度O(NlogN)


2-9 将{5, 2, 7, 3, 4, 1, 6}依次插入初始为空的二叉搜索树。则该树的后序遍历结果是:(4分)答案为1, 4, 3, 2, 6, 7, 5

  1. 1, 2, 3, 4, 6, 7, 5

  2. 1, 4, 2, 6, 3, 7, 5

  3. 1, 4, 3, 2, 6, 7, 5

  4. 5, 4, 3, 7, 6, 2, 1

[解析]:


2-10 对最小堆(小顶堆){1,3,2,12,6,4,8,15,14,9,7,5,11,13,10} 进行三次删除最小元的操作后,结果序列为:(4分)答案是4,6,5,12,7,10,8,15,14,9,13,11

  1. 4,5,6,7,8,9,10,11,12,13,14,15

  2. 4,6,5,13,7,10,8,15,14,12,9,11

  3. 4,6,5,12,7,10,8,15,14,9,13,11

  4. 4,5,6,12,7,10,8,15,14,13,9,11

[解析]:


2-11 带头结点的单链表h为空的判定条件是: (4分)答案为h->next == NULL;

  1. h == NULL;

  2. h->next == NULL;

  3. h->next == h;

  4. h != NULL;

[解析]:1.是不带头结点的单链表h为空的判断条件,2、错误语句,3、不带头结点的单链表h不为空的判断条件


2-12 下列函数中,哪个函数具有最慢的增长速度:(4分)答案为Nlog (N^2)

  1. N^1.5

  2. Nlog (N^2)

  3. (N^2)logN

  4. N(logN)^2

[解析]:

来自csdn

https://blog.csdn.net/huangxiaominglipeng/article/details/40348373


编程题


5-1 下列代码的功能是将小顶堆H中指定位置P上的元素的整数键值下调D个单位,然后继续将H调整为小顶堆。

 void DecreaseKey( int P, int D, PriorityQueue H ){int i, key;key = H->Elements[P] - D;for ( i = /************/(6分); H->Elements[i/2] > key; i/=2 )/************/(6分);H->Elements[i] = key;}1.P2.H->Elements[i] = H->Elements[i/2]

5-2 下列代码的功能是返回带头结点的单链表L的逆转链表。

 List Reverse( List L ){Position Old_head, New_head, Temp;New_head = NULL;Old_head = L->Next;​while ( Old_head )  {Temp = Old_head->Next;/************/(6分);  New_head = Old_head;  Old_head = Temp; }/************/(6分);return L;}1.Old_head->next = New_head;2.L->next = New_head;

中国大学MOOC-陈越、何钦铭-数据结构-2019夏期中考试+解析相关推荐

  1. 中国大学MOOC-陈越、何钦铭-数据结构-2019夏期中考试

    1-1如果无向图G必须进行两次广度优先搜索才能访问其所有顶点,则G一定有2个连通分量. (3分) T 1-2用邻接表法存储图,占用的存储空间数只与图中结点个数有关,而与边数无关. (3分) F 1-3 ...

  2. 中国大学MOOC-陈越、何钦铭-数据结构-2019夏期末考试(含答案)

    中国大学MOOC-陈越.何钦铭-数据结构-2019夏期末考试(含答案) 判断题 1-1   对N个不同的数据采用冒泡排序进行从大到小的排序,当元素基本有序时交换元素次数肯定最多. (2分) 1-2   ...

  3. 中国大学MOOC-陈越、何钦铭-数据结构-2019春期中考试

    做了<数据结构>MOOC的期中考试,感觉还是有很多知识需要学习,现将考试题目整理如下: 判断题: 1-1用邻接矩阵法存储图,占用的存储空间数只与图中结点个数有关,而与边数无关. (3分) ...

  4. 中国大学MOOC-陈越、何钦铭-数据结构-2019夏期末考试

    1-1对一棵平衡二叉树,所有非叶结点的平衡因子都是0,当且仅当该树是完全二叉树.(2分)   F 1-2n!是O(n​^n​​)的. (2分)  T 1-3若用平方探测法解决冲突,则插入新元素时,若散 ...

  5. 中国大学MOOC-陈越、何钦铭-数据结构-2022春期中考试

    中国大学MOOC-陈越.何钦铭-数据结构-2022春期中考试(2) 判断题 1-1 所谓"循环队列"是指用单向循环链表或者循环数组表示的队列. (2分) 1-2 用邻接表法存储图, ...

  6. 【2020-MOOC-浙江大学-陈越、何钦铭-数据结构】春期中考试(附每一个题目的详细解析)

    文章目录 〇.前言 一.判断题 二.选择题 三.程序填空题 总结 〇.前言 这周开始了[MOOC-浙江大学-陈越.何钦铭-数据结构]的期中考试,感觉有点难,可能是我才学了一个月不到的原因??? 一.判 ...

  7. 中国大学MOOC-陈越、何钦铭-数据结构-2022春期中考试(2)

    中国大学MOOC-陈越.何钦铭-数据结构-2022春期中考试(1) 判断题 1-1 将1.2.3.4.5.6顺序插入初始为空的AVL树中,当完成这6个元素的插入后,该AVL树的先序遍历结果是:4.2. ...

  8. 中国大学MOOC-陈越、何钦铭-数据结构-2019秋期末考试

    [PTA]中国大学MOOC-陈越.何钦铭-数据结构-2019秋期末考试 一.判断题: 1-1 对N个不同的数据采用冒泡排序进行从大到小的排序,当元素基本有序时交换元素次数肯定最多. [F] 1-2 2 ...

  9. 中国大学MOOC-陈越、何钦铭-数据结构-2019春期末考试(题目+部分解答)

    欢迎评论(指正或是询问都可),谢谢大家 一.判断题 思路很正常的题目. 1-4反例:4个顶点只用3条边就可以做到全连通.所以边数可能等于顶点个数减一.错误. 二.选择题 2-8需要细心的做一下双旋操作 ...

最新文章

  1. 论Oracle 11g数据库备份与恢复策略
  2. SpringBoot b2b2c 多用户商城系统 ssm b2b2c
  3. 一周飞越50万平方米,无人机检测1.5吨海滩垃圾!自动分类47种,准确率超95%
  4. 百万奖金!交通事件、医学病理、广告检测,江苏大数据开发与应用大赛报名...
  5. 老大爷的手法一看就不一般!
  6. 怎么进行软件需求分析
  7. JavaScript学习(七十八)—实现对数据的浅拷贝和深拷贝
  8. Redis连接的客户端(connected_clients)数过高或者不减的问题解决方案
  9. 基于SSM的电影购票系统
  10. linux中使用rpm命令详解
  11. 靠微信小程序两周获客20万,同城小程序开始爆发
  12. 文件名不显示后缀格式(扩展名)
  13. 丁磊:求快是创业者的思维误区,过于强调时间窗口也是一个伪命题
  14. 基于C语言制作的超级玛丽小游戏
  15. uniapp保存图片_uni-app项目保存图片到相册
  16. 如何用Procmon.exe来监视SQLSERVER的logwrite大小
  17. 修改本地的host文件
  18. maven~本地仓库的指定
  19. 服务器上tomcat修改内存,8g服务器tomcat内存设置
  20. 文章管理系统的系统分析与设

热门文章

  1. 数据可视化 - 三维场景的实现
  2. linux解压rz命令用法,linux压缩和解压缩命令、上传下载,rz和sz
  3. 用 Python 做动态二维码哄女友开心
  4. Kafka的硬盘大小、监控器、分区确定
  5. 【源码+教程】Java桌球游戏_Java初级项目_Java练手项目_Java项目实战_Java游戏开发
  6. Excel数据分析实例——各省人口数量及增长
  7. 计算机文件夹快捷键加密视频,如何给文件夹设置密码 电脑
  8. 【形式语言与自动机】初探——基础核心概念
  9. 压力大睡不着怎么办?
  10. Kaldi运行thchs30(清华大学中文语料库)