1、设 n 是描述问题规模的非负整数,下列程序段的时间复杂度是() 。

x=0;
while(n>=(x+1)*(x+1))
x=x+1;

A、O(logn)
B、O(n^1/2)
C、O(n)
D、O(n^2)

答案:B
解析:

2、若将一棵树 T 转化为对应的二叉树 BT,则下列对 BT 的遍历中,其遍历序列与 T 的后根遍历序列相同的是()。

A、先序遍历
B、中序遍历
C、后序遍历
D、按层遍历

答案:B
解析:后根遍历树可分为两步:①从左到右访问双亲结点的每个孩子(转化为二叉树后就是先访问根结点再访问右子树);②访问完所有孩子后再访问它们的双亲结点(转化为二叉树后就是先访问左子树再访问根结点),因此树T的后根遍历序列与其相应二叉树BT的中序遍历序列相同。对于此类题,采用特殊值法求解通常会更便捷,左下图树T转换为二叉树BT的过程如下图所示,树T的后序遍历序列显然和其相应二叉树BT的中序遍历序列相同,均为5,6,7,2,3,4, 1。因此选B.

3、对 n 个互不相同的符号进行哈夫曼编码。若生成的哈夫曼树共有 115 个结点,则 n 的值是()。

A、56
B、57
C、58
D、60

答案:C
解析:在由n个符号构造哈夫曼树的过程中,共新建了n-1个结点(双分支结点),因此哈夫曼树的结点总数为2n-1=115,n的值为58,答案选C.

4、在任意一棵非空平衡二叉树(AVL 树)T1 中,删除某结点 v 之后形成平衡二叉树 T2,再将 v 插入 T2 形成平衡二叉树 T3。下列关于 T1 与 T3 的叙述中,正确的是()。

I.若 v 是 T1 的叶结点,则 T1 与 T3 可能不相同
II.若 v 不是 T1 的叶结点,则 T1 与 T3 一定不相同
III.若 v 不是 T1 的叶结点,则 T1 与 T3 一定相同

A、仅 I
B、仅 II
C、仅 I、II
D、仅 I、III

答案:A
解析:
在非空平衡二叉树中插入结点,在失去平衡调整前,一定插入在叶结点的位置。
若删除的是T1的叶结点,则删除后平衡二叉树不会失去平衡,即不会发生调整,再插入此结点得到的二叉平衡树T1与T3相同;若删除后平衡二叉树失去平衡而发生调整,再插入结点得到的二叉平衡树T3与T1可能不同。I正确。例如,如下图所示,删除结点0,平衡二叉树失衡调整,再插入结点0后,平衡二叉树和以前不同。
对于比较绝对的说法II和III,通常只需举出反例即可。
若删除的是T1的非叶结点,且删除和插入操作均没有导致平衡二叉树的调整(这时可以首先想到删除的结点只有一个孩子的情况),则该结点从非叶结点变成了叶结点,T1与T3显然不同。例如,如下图所示,删除结点2,用右孩子结点3填补,再插入结点2,平衡二叉树和以前不同。
若删除的是T1的非叶结点,且删除和插入操作后导致了平衡二叉树的调整,则该结点有可能通过旋转后继续变成非叶结点,T1与T3相同。例如,如下图所示,删除结点2,用右孩子结点3填补,再插入结点2,平衡二叉树失衡调整,调整后的平衡二叉树和以前相同。.

5、下图所示的 AOE 网表示一项包含 8 个活动的工程。活动 d 的最早开始时间和最迟开始时间分别是()。

A、3 和 7
B、12 和 12
C、12 和 14
D、15 和 15

答案:C
解析:活动d的最早开始时间等于该活动弧的起点所表示的事件的最早发生时间,活动d的最早开始时间等于事件2的最早发生时间max {a,b+c} = max{3,12}=12。活动d的最迟开始时间等于该活动弧的终点所表示的事件的最迟发生时间与该活动所需时间之差,先算出图中关键路径长度为27 (对于不复杂的选择题,找出所有路径计算长度),那么事件4的最迟发生时间为min{27-g} = min{27-6}=21,活动d的最迟开始时间为21-d =21-7=14.
常规方法:按照关键路径算法算得到下表。
从表中可知,活动d的最早开始时间和最迟开始时间分别为12和14,故选C.

6、用有向无环图描述表达式 (x y)((x y) / x) ,需要的顶点个数至少是()。

A、5
B、6
C、8
D、9

答案:A
解析:先将该表达式转换成有向二叉树,注意到该二叉树中有些顶点是重复的,为了节省存储空间,可以去除重复的顶点(使顶点个数达到最少),将有向二叉树去重转换成有向无环图,如下图所示。答案选A.

7、选择一个排序算法时,除算法的时空效率,下列因素中,还需要考虑的是()。

I.数据的规模
II.数据的存储方式
III.算法的稳定性
IV.数据的初始状态

A.仅 III
B.仅 I、II
C.仅 II、III、IV
D.I、II、III、IV

答案:D
解析:
当数据规模较小时可选择复杂度为0(n^2)的简单排序方法,当数据规模较大时应选择复杂度为O(nlog2 n)的排序方法,当数据规模大到内存无法放下时需选择外部排序方法,I正确。
数据的存储方式主要分为顺序存储和链式存储,有些排序方法(如堆排序)只能用于顺序存储方式,II 正确。
若对数据稳定性有要求,则不能选择不稳定的排序方法,III显然正确。
当数据初始基本有序时,直接插入排序的效率最高,冒泡排序和直接插入排序的时间复杂度都是O(n),而归并排序的时间复杂度依旧是O(nlog2n),IV正确。所以选D.

8、现有长度为 11 且初始为空的散列表 HT,散列函数是 H(key) = key % 7,采用线性探查(线性探测再散列)法解决冲突。将关键字序列 87, 40, 30, 6, 11, 22, 98, 20 依次插入 HT 后,HT查找失败的平均查找长度是()。

A、4
B、5.25
C、6
D、6.29

答案:C
解析:采用线性探查法计算每个关键字的存放情况,如下表所示。
由于H(key)= 0 ~ 6,查找失败时可能对应的地址有7个,对于计算出地址为0的关键字key0,只有比较完0~ 8号地址后才能确定该关键字不在表中,比较次数为9;对于计算出地址为1的关键字key1,只有比较完1~8号地址后才能确定该关键字不在表中,比较次数为8;以此类推。需要特别注意的是,散列函数不可能计算出地址7,因此有(9+8+7+6+5+4+3)/7=6,因此选C.

9、设主串 T = “abaabaabcabaabc”,模式串 S = “abaabc”,采用 KMP 算法进行模式匹配,到匹配成功时为止,在匹配过程中进行的单个字符间的比较次数是()。

A、9
B、10
C、12
D、15

答案:B
解析:假设位序都是从0开始的,按照next数组生成算法,对于S有
根据KMP算法,第- -趟连续比较6次,在模式串的5号位和主串的5号位匹配失败,模式串的下一个比较位置为next[5],即下一次比较从模式串的2号位和主串的5号位开始,然后直到模式串5号位和主串8号位匹配,第二趟比较4次,模式串匹配成功。单个字符的比较次数为10次,所以选B.

10、排序过程中,对尚未确定最终位置的所有元素进行一遍处理称为一“趟”。下列序列中,不可能是快速排序第二趟结果的是() 。

A、5, 2, 16, 12, 28, 60, 32, 72
B、2, 16, 5, 28, 12, 60, 32, 72
C、2, 12, 16, 5, 28, 32, 72, 60
D、5, 2, 12, 28, 16, 32, 72, 60

答案:D
解析:要理解清楚排序过程中一“趟”的含义,题干也进行了解释。一个初始无序序列,所有元素都没有确定最终位置,对所有元素做一次(称为趟)快速排序后一个元素确定最终位置,且将原序列划分成了前后两块,此时前后两块子表是无序的。按“趟”的解释———对尚未确定最终位置的所有元素都处理-遍才是-趟,所以此时要对前后两块子表各做一次快速排序才是- -“趟”快速排序,如果只对一块子表进行了排序,而未处理另一块子表, 就不能算是完整的一趟。
选项A,第一趟匹配72,只余-块无序序列,第二趟匹配28, A可能。选项B,第一趟匹配2,第二趟匹配72,B可能。选项C,第一趟匹配2,第二趟匹配28或32,C可能。选项D,无论先匹配12还是先匹配32,都会将序列分成两块,那么第二趟必须有两个元素匹配,所以D不可能,故选D。

11、设外存上有 120 个初始归并段,进行 12 路归并时,为实现最佳归并,需要补充的虚段个数是 ()。

A、1
B、2
C、3
D、4

答案:B
解析:

2019年计算机考研408数据结构真题(客观题)相关推荐

  1. 2019年计算机考研408操作系统真题(客观题)

    1.下列关于线程的描述中,错误的是 A.内核级线程的调度由操作系统完成 B.操作系统为每个用户级线程建立一个线程控制块 C.用户级线程间的切换比内核级线程间的切换效率高 D.用户级线程可以在不支持内核 ...

  2. 2020年计算机考研408数据结构真题(客观题)

    1.将一个10x10对称矩阵M的上三角部分的元素m,j (1≤i≤j≤10)按列优先存入C语言的一维数组N中,元素m7,2在N中的下标是( ). A.15 B.16 C.22 D.23 答案:C 解析 ...

  3. 2021年计算机考研408数据结构真题(客观题)

    1.已知头指针h指向一个带头结点的非空单循环链表,结点结构为 其中next是指向直接后继结点的指针,p是尾指针,q是临时指针.现要删除该链表的第一个元素,正确的语句序列是( ). A.h-> n ...

  4. 2018年计算机考研408操作系统真题(客观题)

    1.下列关于多任务操作系统的叙述中,正确的是 Ⅰ. 具有并发和并行的特点 Ⅱ. 需要实现对共享资源的保护 Ⅲ. 需要运行在多 CPU 的硬件平台上 A. 仅Ⅰ B. 仅Ⅱ C. 仅Ⅰ.Ⅱ D.Ⅰ.Ⅱ. ...

  5. 2016年计算机考研408操作系统真题(客观题)

    1.下列关于批处理系统的叙述中,正确的是 Ⅰ.批处理系统允许多个用户与计算机直接交互 Ⅱ.批处理系统分为单道批处理系统和多道批处理系统 Ⅲ.中断技术使得多道批处理系统的I/O设备可与CPU并行工作 A ...

  6. 2017年计算机考研408操作系统真题(客观题)

    1.假设4个作业到达系统的时刻和运行时间如下表所示. 系统在t=2时开始作业调度.若分别采用先来先服务和短作业优先调度算法,则选中的作业分别是 A.J2.J3 B.J1.J4 C.J2.J4 D.J1 ...

  7. 2021年计算机考研408操作系统真题(客观题)

    1.下列指令中,只能在内核态执行的是( ). A.trap 指令 B.I/O 指令 C.数据传送指令 D.设置断点指令 答案:B 解析:在内核态下,CPU可执行任何指令,在用户态下CPU只能执行非特权 ...

  8. 2020年计算机考研408操作系统真题(客观题)

    1.若多个进程共享同一个文件 F,则下列叙述中正确的是: A.各进程只能用"读"方式打开文件 F B.在系统打开文件表中仅有一个表项包含 F 的属性 C.各进程的用户打开文件表中关 ...

  9. 2019年计算机考研408联考【完整版】真题和答案!

    前几天,考研大纲公布了! 公布的不仅仅是政治/数学/英语等公共课大纲,还包括计算机统考的408大纲. 与408大纲一起公布的,还有2019年计算机统考408的真题. 小编尽可能快的获取到了真题,提供给 ...

最新文章

  1. 文本文件与二进制文件及编码关系
  2. TensorFLow 常用错误总结
  3. Brad Wilson写的 ASP.NET MVC 3 Service Location 系列文章索引
  4. 法那科机器人初始化启动_发那科机器人的控制方式和控制柜的启动方式
  5. WTL 学习博文地址
  6. Webpack4: Tree-shaking 深度解析
  7. data为long 怎么设置vue_vue基础之data
  8. 信息学奥赛一本通 1052:计算邮资 | OpenJudge NOI 1.4 14
  9. CSV 导入mysql 数据库
  10. 一位19年的Mac用户:“我真的很讨厌库克”
  11. R语言可视化学习笔记之gganimate包
  12. R实践 第二篇:创建数据集
  13. 清华大学王行言教授DELPHI程序设计在线学习
  14. WIN7视觉保护色设置(附图)
  15. 2019商业数据分析软件有哪些
  16. java冒泡排序(含冒泡排序代码)
  17. 成都盛铭轩:产品主图提升转化率
  18. 二十一个微信公众号推广技巧
  19. python excel行列转置_Excel 行列转换的最简方法
  20. Golang:后台管理系统Revel搭建教程

热门文章

  1. 对话木瓜移动创始人沈思 l 从硅谷到北京
  2. 数据库中的触发器是用来做什么的?
  3. 坎公骑冠剑普系角色德魯伊坎納属性、专武曝光
  4. Visual Studio Code (VS Code) - 自定义大写和小写转换快捷键
  5. 《明解C语言 入门篇》第5章 数组 练习题解答
  6. Springboot整合SQLServer
  7. excel转换txt文本(matlab版本)
  8. 计算机word文档考试题,计算机基础考试题A带答案
  9. 隔空投送怎么打开「详细教程」
  10. vim下使用 寄存器 剪切板