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

2017年云南省培养单位云南天文台862计算机学科综合(非专业)之数据结构考研导师圈点必考题汇编

  摘要

一、填空题

1. 文件由_____组成;记录由_____组成。

【答案】记录;数据项

2. 顺序存储结构是通过_____表示元素之间的关系的;链式存储结构是通过_____表示元素之间的关系的。

【答案】物理上相邻;指针

【解析】顺序存储结构是通过物理位置表示元素之间的关系的,链式存储结构通过指针表示元素之间的关系。

3. 一个有2001个结点的完全二叉树的高度是_____。

【答案】11

【解析】完全二叉树的高度

4. 执行顺序查找时,存储方式可以是_____,折半查找时,要求线性表_____,分块查找时要求线性表_____,而哈希表的查找,要求线性表的存储方式是_____。

【答案】顺序存储或链式存储;顺序存储且有序;块内顺序存储,块间有序;散列存储

5. 在有n 个顶点的有向图中,每个顶点的度最大可达。

【答案】2(n-l )

【解析】当有向图为完全连通图时每个顶点的度达到最大,出度入度均为n-1。

6. 索引顺序文件既可以顺序存取,也可以_____存取。

【答案】随机

7. 阅读下列程序说明和裎序,填充程序中的_____。

【程序说明】本程序完成将二叉树中左、右孩子交换的操作。交换的结果如下所示(编科略)本程序采用非递归的方法,设立一个堆栈交换左、右子树的算法为:

(1)把根结点放入堆栈。

(2)当堆栈不空时,取出栈顶元素,交换它的左、右子树,并把它的左、右子树分别入栈。(3)重复(2)直到堆栈为空时为止。

第 2 页,共 69 页

存放还没有转换过的结点,它的栈顶指针为。

(1)

{(2)

If ( (3) )

} }}

【答案】

【解析】本题主要使用堆栈完成了二叉树左右子树交换的操作。首先根结点进栈,然后判断栈足否为空,如果不为空,则取栈顶元素,交换取出节点的左右指针。并将左右指针分别进桟,重复这一操作。完成二叉树左右孩子的交换。

8. —棵深度为k 的平衡二叉树, 其每个非终端结点的平衡因子均为0,则该树共有_____个结点。

【答案】树。故结点个数为

9. 在哈希函数

中,P 值最好取_____。

【解析】每个非终端结点都是0表示该平衡二叉树没有高度落差。也就是说它是一棵满二叉

【答案】小于等于表长的最大素数或不包含小于20的质因子的合数

【解析】在使用除留余数法时,对除数P 的选择很重要。若P 选的不好,容易产生同义词。一般情况下,可以选P 为质数或不包含小于20的质因素的合数。

10.n 个顶点的有向图用邻接矩阵array 表示,下面是其拓扑排序算法,试补充完整。

注:(1)图的顶点号从0开始计;

(2)indegree 是有n 个分量的一维数组,放顶点的入度, (3)函数crein 用于记算顶点入度;

(4)有三个函数push (data ), pop( ), check( )其含义为数据data 入浅,出栈和测试栈是否空(不空返回1, 否则0)。

第 3 页,共 69 页

.

【答案】0; j; i; 0; indegree[i]=0; [vex][i]; k==l; indegree[i]=0

【解析】有向图用邻接矩阵表示时,顶点i 的入度等于第i 列的所有元素之和。拓扑排序过程:首先将入度 为0的顶点全部进栈。然后弹出栈顶结点,并将与弹出的顶点相连的其它顶点的入度 减一,然后判断这些顶点的 入度是否为零,如果为零,继续进栈,重复这些操作,完成拓扑排序。

(“图有回路”)

二、选择题

11.对一组数据(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

【解析】题目中所给的三趟排序过程,显然是使用起泡排序方法,每趟排序时从前往后依次,待序列中的记录“基比较,使大值“沉底”。希尔排序的基本思想是:先对序列进行“宏观调整”本有序”时再进行直接插入排序。宏观调整的方法是:通过某种规则将大的待排序序列分割为若干小的待排序序列,再依次对这些小的序列直接插入排序。宏观调整可以多次,每次分割的序列数逐渐増多,而每个序列中所包含的元素数逐渐减少。归并排序的基本操作是将多个小的有序序,直至整个序列为有序为止。 基数排序是分配排列合并为一个大的有序序列,然后“逐趟归并”

序的一种,这类排序不是通过关键字比较,而是通过“分配”和“收集”过程来实现排序的。 本,显然使用的是起泡排序法。 题中,很容易看出大值逐渐“沉底”

12.对给定的关键字序列110, 119, 007, 911,114,120, 122进行基数排序,则第2趟分配收集后得到的关键字序列是( )

A. B. C. D.

【答案】C

【解析】基数排序的第1趟排序是按照个位数字来排序的,第2趟排序是按然十位数字的大

第 4 页,共 69 页