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

2017年常州大学艺术学院858数据结构考研导师圈点必考题汇编

  摘要

一、选择题

1. 为提高散列(Hash )表的查找效率,可以采用的正确措施是( )。

I .增大装填(载)因子

II. 设计冲突(碰撞)少的散列函数

III. 处理冲突(碰撞)时避免产生聚集(堆积)现象

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

【答案】D

【解析】散列表的查找效率(比较次数)取决于:散列函数、处理冲突的方法和散列表的装填因子a 。CX 标 志着散列表的装满程度,通常情况下,(X 越小,发生冲突的可能性越小;反之,a 越大,表示已填入的记录越多, 再填入记录时,发生冲突的可能性越大。因此选项I 错误,越是增大装填因子,发生冲突的可能性就越大,查找 效率也越低。选项II 正确。选项III 正确。采用合适的处理冲突的方法避免产生聚集现象,也将提高查找效率。例如,用拉链法解决冲突时不存在聚集现象,用线性探测法解决冲突时易引起聚集现象。

2. 下述二叉树中,哪一种满足性质:从任一结点出发到根的路径上所经过的结点序列按其关键字有序( )。

A. 二叉排序树

B. 哈夫曼树

C.

D. 堆

【答案】D

【解析】堆的定义:

n 个关键字序列

(1)

(2)

且且或 称为堆,当且仅当该序列满足如下性质(简称为堆性质): 树

满足第(1)种情况的堆,称为小顶堆;满足第(2)种情况的堆,称为大顶堆。

由堆的定义可知堆可以满足上述性质。

3. 基于比较方法的n 个数据的内部排序。 最坏情况下的时间复杂度能达到的最好下界是( )。

A.0(nlogn )

B.O (logn )

C.O (n ) D.

【答案】A

【解析】在内部排序中,最坏情况下的时间复杂度为0(nlogn )。

已知待排序的n 个元素可分为个组,每个组包含k 个元素,且任一组内的各元素均分别大干前一

4. 下列四个序列中,哪一个是堆( )?

A.75,65,30,15,25,45,20,10

B.75,65,45,10,30,25,20,15

C.75,45,65,30,15,25,20,10

D.75,45,65,10,25,30,20,15

【答案】C

【解析】堆的定义:

n 个关键字序列

称为堆,当且仅当该序列满足如下性质(简称为堆性质):

小根堆:满足第①种情况的堆;

大根堆:满足第②种情况的堆。

根据堆定义即可得出答案。

5. 引入二叉线索树的目的是( )。

A. 加快查找结点的前驱或后继的速度

B. 为了能在二叉树中方便地进行插入与删除

C. 为了能方便地找到双亲

D. 使二叉树的遍历结果唯一

【答案】A

【解析】二叉线索树有指向前驱和后继的指针,因此加快了查找前驱和后继结点的速度。

6. 对一组数据(2, 12, 16, 88, 5,10)进行排序,若前三趟排序结果如下:

第一趟:2,12,16, 5,10,88

第二趟:2,12,5,10,16, 88 第三趟:2,5,10,12,16, 88

则采用的排序方法可能是( )。

A. 起泡排序

B. 希尔排序

C. 归并排序

D. 基数排序

【答案】A

【解析】题目中所给的三趟排序过程,显然是使用起泡排序方法,每趟排序时从前往后依次

,待序列中的记录“基比较,使大值“沉底”。希尔排序的基本思想是:先对序列进行“宏观调整”

本有序”时再进行直接插入排序。宏观调整的方法是:通过某种规则将大的待排序序列分割为若干小的待排序序列,再依次对这些小的序列直接插入排序。宏观调整可以多次,每次分割的序列数逐渐増多,而每个序列中所包含的元素数逐渐减少。归并排序的基本操作是将多个小的有序序

,直至整个序列为有序为止。 基数排序是分配排列合并为一个大的有序序列,然后“逐趟归并”

序的一种,这类排序不是通过关键字比较,而是通过“分配”和“收集”过程来实现排序的。 本

,显然使用的是起泡排序法。 题中,很容易看出大值逐渐“沉底”

7. 元素a , b , c , d , e 依次进入初始为空的栈中,若元素进栈后可停留、可出栈,直到所有元素都出栈,则在所有可能的出栈序列中,以元素d 开头的序列个数是( )。

A.3

B.4

C.5

D.6

【答案】B

【解析】d 首先出栈后的状态如下图所示。

此时可有以下4种操作:

(1)e 进找后出栈,出梭序列为decba 。

(2)c 出找,e 进找后出栈,出找序列为dceba 。

(3)cb 出找,e 进找后出栈,出找序列为dcbea 。

(4)cba 出找,e 进找后出找,出找序列为dcbae 。

8. 栈和队的共同点是( )。

A. 都是先进后出

B. 都是后进先出

C. 只允许在端点处插入和删除元素

D. 没有共同点

【答案】C

【解析】栈和队列的区别是栈是先进后出的数据结构,队列是先进先出的数据结构,栈和队列的共同点是都只能在端点处插入和删除元素。

9. 下列选项中,满足短任务优先且不会发生饥饿现象的调度算法是( )。

A. 先来先服务