2017年北京市培养单位北京基因组研究所863计算机学科综合(专业)之数据结构考研仿真模拟题
● 摘要
一、填空题
1. 假定有k 个关键字互为同义词,若用线性探测再哈希法把这k 个关键字存入哈希表中,至少要进行_____次探测。
【答案】
【解析】当该关键字发生冲突时,用线性探测不会遇到别的关键字冲突,这个时候需要探测 的次数最小。总次数为
2. 抽象数据类型的定义仅取决于它的一组_____,而与_____无关, 即不论其内部结构如何变化,只要它的_____不变,都不影响其外部使用。
【答案】逻辑特性;在计算机内部如何表示和实现;数学特性
3. 分别采用堆排序,快速排序,起泡排序和归并排序,对初态为有序的表,则最省时间的是_____算法,最费时间的是_____算法。
【答案】起泡;快速
,【解析】当初态为有序表时,冒泡排序只需要进行一趟比较即可,此时时间复杂度为〇(n ) 而快速排序算法需要比较的次数达到最大,时间复杂度为
4. 在单链表L 中,指针P 所指结点有后继结点的条件是_____
【答案】
【解析】指针所指节点的指针域所指向的元素非空,说明该指针所指节点有后继结点。
5. —棵有个结点的满二叉树有_____个度为1的结点、有_____个分支(非终端)结点和_____个叶子,该满二叉树的深度为_____。
【答案】
或
【解析】满二叉树没有度为1的结点,度为0的结点等于度为2的结点个数+1。
6. 下面程序的功能是用递归算法将一个整数按逆序存放到一个字符数组中。如123存放成321。请填空:
【答案】
【解析】通过递归算法,首先找到最高位的值,将其放到str 对应的数组中,依次反向获取从高位到地位的值,将其放到数组中,完成了将整数逆序放到一个字符数组中。
7. 克鲁斯卡尔算法的时间复杂度为_____,它对_____图较为适合。
【答案】O (eloge ); 边稀疏
8. 设用希尔排序对数组{98,36,-9,0,47,23,1,8,10,7}进行排序,给出的步长(也称 增量序列)依次是4,2,1则排序需_____趟,写出第一趟结束后,数组中数据的排列次序_____。
【答案】3; (10,7,-9,0,47,23,1,8,98,36)
9. 对n 个记录的表r[l..n]进行简单选择排序,所需进行的关键字间的比较次数为_____。
【答案】n (n-1)/2
【解析】第一次需要n-1次比较,第i 此需要n-i 此比较,所以共需要、n-l+n-2+...+l=n(n-l )/2。
10.
每一棵树都能唯一地转换为它所对应的二叉树。若已知一棵二叉树的前序序列是中序序列是前庁序列是_____。
【答案】前序是
。
【解析】树的抑序序列对应二叉树的前序序列. 该二叉树转换成森林吋含三棵树. 其第一棵树的
.
,则它的后庁序列是_____。设上述二叉树是由某棵树转换而成,则该树的
二、判断题
11.采用线性探测法处理散列时的冲突,当从哈希表删除一个记录时,不应将这个记录的所在位置置空,因为这会影响以后的查找。( )
【答案】√
【解析】从哈希表删除一个记录,不是将这个记录的位置置空,而是设置一个标记,标记这个元素是无效的了。
12.—个树形的叶结点,在前序遍历和后序遍历下,皆以相同的相对位置出现。( )
【答案】√
【解析】树的前序遍历和后序遍历叶子节点的相对次序是不变的,都遵循左右的次序。
13.在一个设有头指针和尾指针的单链表中,执行删除该单链表中最后一个元素的操作与链表的长度无关。( )
【答案】
【解析】必须从头指针开始,查找到尾指针所指结点的前驱结点的指针。
14.数据结构的抽象操作的定义与具体实现有关。( )
【答案】
【解析】数据结构的抽象操作定义取决于客观存在的一组逻辑特性,与其在计算机内具体表示和实现无关。
15.内排序要求数据一定要以顺序方式存储。( )
【答案】×
【解析】由于待排序的记录数量不同,使得排序过程中涉及的存储器不同,可将排序方法分为两大类:一类是内部排序;另一类是外部排序。因此,内部排序没有要求数据一定是以顺序方式存储。
16.对磁带机而言,ISAM 是一种方便的文件组织方法。( )
【答案】×
【解析】ISAM 是一种专为磁盘存取设计的文件组织方式。
17.数据的逻辑结构是指数据的各数据项之间的逻辑关系。( )
【答案】
【解析】数据的逻辑结构是指数据元素之间的逻辑关系。
18.数据元素是数据的最小单位。( )
【答案】
【解析】数据项是数据的不可分割的最小单位,而数据元素是数据的基本单位。
19.在任何情况下,归并排序都比简单插入排序快。( )
【答案】×
【解析】错误。待排序序列为正序时,简单插入排序比归并排序快。
20.哈夫曼树度为1的结点数等于度为2和0的结点数之差。( )
【答案】×
【解析】哈夫曼树不存在度数为1的结点。度数为2和0的结点数之差为1。
三、算法设计题