当前位置:问答库>考研试题

2017年江西农业大学计算机与信息工程学院908数据结构[专业硕士]考研仿真模拟题

  摘要

目录

2017年江西农业大学计算机与信息工程学院908数据结构[专业硕士]考研仿真模拟题(一) . 2 2017年江西农业大学计算机与信息工程学院908数据结构[专业硕士]考研仿真模拟题(二)15 2017年江西农业大学计算机与信息工程学院908数据结构[专业硕士]考研仿真模拟题(三)26 2017年江西农业大学计算机与信息工程学院908数据结构[专业硕士]考研仿真模拟题(四)40 2017年江西农业大学计算机与信息工程学院908数据结构[专业硕士]考研仿真模拟题(五)53

一、填空题

1. 在单链表中设置头结点的作用是_____。

【答案】方便运算

2. 阅读下列程序,指出其功能,并写出空格处应填上的语句。

的元素,如该元素已在哈希表中,报告出错。

【答案】

【解析】本题是在哈希表ht[]中插入值为

3. —个字符串中_____称为该串的子串。

【答案】任意个连续的字符组成的子序列

4. 遍历图的过程实质上是_____,广度优先遍历图的时间复杂度_____; 深度优先遍历图的时间复杂度_____, 两者不同之处在于_____, 反映在数据结构上的差别是_____。

【答案】查找顶点的邻接点的过程;0(n+e); 0(n+e); 访问顶点的顺序不同;队列和栈 【解析】广度优先遍历图使用队列这种数据结构,深度优先遍历图使用栈这种数据结构。

5. 求图的最小生成树有两种算法,_____算法适合于求稀疏图的最小生成树e

【答案】克鲁斯卡尔

【解析】克鲁斯卡尔算法是一种按权值的递增次序选择合适的边来构造最小生成树的方法,这种算法中,采用堆来存放边的集合,适合于边稀疏而顶点较多的图。

6. 二叉树由_____,_____,_____三个基本单元组成。

【答案】根结点;左子树;右子树

7. 如果按关键码值递増的顺序依次将关键码值插入到二叉排序树中,则对这样的二叉排序树检索时,平均比较次数为_____。

【答案】

【解析】如果关键码是排好序的,构建二叉排序树就会形成一个单支树,它的查找效率和顺 序查找效率一样为

8. 对单链表中元素按插入方法排序的C 语言描述算法如下,其中L 为链表头结点指针。请填充算法中标出的空白处,完成其功能。

置空链表,然后将原链表结点逐个插入到有序表中

当链表尚未到尾,p 为工作指针

查P 结点在链表中的插入位置,这时q 是工作指针

将P 结点链入链表中

是q 的前驱,u 是下个待插入结点的指针

【答案】(1)(2)(3)(4)(5)

9. 关键码序列(Q ,H ,C ,Y ,Q ,A ,M ,S ,R ,D ,F ,X ),要按照关键码值递增的次序进行排序,若采用初始步长为4的希尔排序法,则一趟扫描的结果是_____; 若采用以第一个元素为分界元素的快速排序法,则扫描一趟的结果是_____。

【答案】(Q ,A ,C ,S ,Q ,D ,F ,×,R ,H ,M ,Y ); (F ,H ,C ,D ,a ,A ,M ,Q ,R ,S ,Y ,X )

【解析】希尔排序的基本思想是:先将整个待排记录序列分割成为若干子序列分别进行直接插入排序,待整个序列中的记录“基本有序”时,再对全体记录进行一次直接插入排序。

快速排序(quicksort )的基本思想是,通过一趟排序将待排记录分割成独立的两部分,其中一部分记录的关键字均比另一部分记录的关键字小,则可分别对这两部分记录继续进行排序,以达到整个序列有序。

10.VSAM (虚拟存储存取方法)文件的优点是:动态地_____,不需要文件进行_____,并能较快地_____进行查找。

【答案】分配和释放存储空间;重组;对插入的记录

二、选择题

11.设被排序的结点序列共有N 个结点,在该序列中的结点已十分接近排序的情况下,用直接插入法、归并法和一般的快速排序法对其排序,这些算法的时间复杂性应为( )。

【答案】C

【解析】因为该序列中的结点已经十分接近排序的情况,对于直接插入法,大部分结点只需要直接插入后面即可,因此时间复杂度为的时间复杂度为

对于采用归并法,它是一种稳定的排序方法,它

对于一般的快速排序法,序列越接近有序,所需要的比较次数越多,

此时的时间复杂度为

12.下面给出的四种排序方法中,排序过程中的比较次数与排序方法无关的是( )。

A. 选择排序法B. 插入排序法C. 快速排序法D. 堆排序法 【答案】A

【解析】选择排序的基本思想是:

第i 趟排序开始时,当前有序区和无序区分别为则是从当前无序区中选出关键字最小的记录和

分别变为新的有序区和新的无序区。

该趟排序

交换,使

将它与无序区的第1个记录

13.浮点数加、减运算一般包括对阶、尾数运算、规格化、舍入和判溢出等步骤。设浮点数的阶码和尾数均采用补码表示,且位数分别为5位和7位(均含2位符号位)

。若有两个数

则用浮点加法计算X+Y的最终结果是( )。

A.001111100010

B.001110100010 C.010000010001 D. 发生溢出 【答案】D

【解析】浮点数加、减运算一般包括对阶、尾数运算、规格化、舍入和判溢出等步骤,难点在对阶、规格化、判溢出这三步。X 和Y 的阶码不同,所以应该先对阶,对阶原则为:小阶向大阶看齐。因此将Y 对阶后得到:Y=

然后将尾数相加,得到尾数之和为:34/32。因为这

是两个同号数相加,尾数大于1,则需要右规,阶码加1。由于阶码的位数为5位,且含两位符号位,即阶码的表示范围在-8〜+7之间。而阶码本身等于7, 再加1就等于8。因此,最终结果发生溢出。

14.设有两个串S1和S2, 求S2在S1中首次出现的位置的运算称作( )。

A. 求子串 B. 判断是否相等 C. 模型匹配