2018年合肥工业大学计算机与信息学院850计算机科学与技术学科专业基础综合之数据结构考研仿真模拟五套题
● 摘要
一、填空题
1. 外排序的基本操作过程是_____和_____。
【答案】生成有序归并段(顺串) ;归并 2. 假定查找有序表
【答案】
表
平均查找次数为
3. 在哈希函数
。
中,p 值最好取_____。
中每个元素的概率相等,则进行折半查找时的平均查找长度为_____。
【解析】折半查找时每个的次数如表所示:
【答案】小于等于表长的最大素数或不包含小于20的质因子的合数
【解析】在使用除留余数法时,对除数P 的选择很重要。若P 选的不好,容易产生同义词。一般情况下,可以选P 为质数或不包含小于20的质因素的合数。
4. 实现字符串拷贝的函数strcpv 为:
(_____)
【答案】s++=*t++或(*s++=*t++)!='\0’
5. 二叉树由_____,_____,_____三个基本单元组成。
【答案】根结点;左子树;右子树
6. n 个顶点的有向图用邻接矩阵array 表示,下面是其拓扑排序算法,试补充完整。
注:(1)图的顶点号从0开始计;
(2)indegree是有n 个分量的一维数组,放顶点的入度, (3)函数crein 用于记算顶点入度; (4)有三个函数回1,否则0) 。
第 2 页,共 43 页
其含义为数据data 入栈,出栈和测试栈是否空(不空返
("图有回路") ;
【答案】
【解析】有向图用邻接矩阵表示时,顶点i 的入度等于第i 列的所有元素之和。拓扑排序过程:首先将入度为0的顶点全部进栈。然后弹出栈顶结点,并将与弹出的顶点相连的其它顶点的入度 减一,然后判断这些顶点的入度是否为零,如果为零,继续进栈,重复这些操作,完成拓扑排序。
7. 在双向循环链表中,向P 所指的结点之后插入指针f 所指的结点,其操作是_____、_____、_____、_____。
【答案】f ﹣>next =p ﹣>next ;f ﹣>prior =p ;p ﹣>next ﹣>prior =f ;p ﹣>next =f ;
8. 设m 、n 均为自然数,m 可表示为一些不超过n 的自然数之和,f(m,n) 为这种表示方式的数目。例f(5,3) =5, 有5种表示方式:3+2, 3+1+1,2+2+1,2+1+1+1,1+1+1+1+1。
①以下是该函数的程序段,请将未完成的部分填入,使之完整。
_____
_____;
}
_____;
}
,
_____)
②执行程序,f(6,4) =_____。 【答案】①1; 1; f(m, n ﹣1) ; n ②9
第 3 页,共 43 页
9. 已知t) ,LEN(t)+1))
:
【答案】
;
;ASSIGN(S,U) ;ASSIGN(V,SUBSTR(S,INDEX(S,,求REPLACE(S,V ,m) =_____。
10.已知二叉排序树的左右子树均不为空,则_____上所有结点的值均小于它的根结点值,_____上所有结点的值均大于它的根结点的值。
【答案】左子树;右子树
【解析】二叉排序树(binary sort tree)或者是一棵空树,或者是具有下列性质的二叉树:①若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值;②若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值;③它的左、右子树也分别为二叉排序树。
二、判断题
11.若中序遍历平衡的二叉排序树,可得到排好序的关键码序列。( )
【答案】√
【解析】二叉排序树对于每一个结点,它的左子树的所有结点的值都小于这个结点的值,而它的右子树的所有结点的值都大于这个结点的值。而釆用中序遍历,遍历顺序为左根右,因此可以得到按增序排列的关键码序列。
12.哈希表与哈希文件的唯一区别是哈希文件引入了“桶”的概念( )
【答案】×
【解析】哈希文件是使用一个函数(算法) 来完成一种将关键字映射到存储器地址的映射,根据用户给出的关键字,经函数计算得到目标地址,再进行目标的检索。哈希表是根据关键码值而直接进行访问的数据结构。
13.对于有n 个结点的二叉树,其高度为log 2n 。( )
【答案】 ×
【解析】例如n 结点的单枝树,高度就为n 。
14.对处理大量数据的外存介质而言,索引顺序存取方法是一种方便的文件组织方法。( )
【答案】×
【解析】索引顺序存取方法插入操作比较麻烦,对于处理大量数据,会有大量的记录进入溢出区,而基本区中又浪费很多空间。
15.为提高排序速度,进行外排序时,必须选用最快的内排序算法。( )
【答案】×
【解析】外部排序算法最常用的是多路归并,即将原文件分解成多个能够一次性装人内存的部分,分别把每一部分调入内存完成排序。然后,对己经排序的子文件进行归并排序。
第 4 页,共 43 页