2017年南京航空航天大学计算机科学与技术学院829计算机专业基础之数据结构考研题库
● 摘要
一、填空题
1. 循环队列的引入,目的是为了克服_____。
【答案】假溢出时大量移动数据元素
【解析】用数组实现队列时,如果不移动,随着数据的不断读写,会出现假满队列的情况。即尾数组已满但头数组还是空的。循环队列也是一种数组,引入循环队列,有效克服假溢出大量移动数据元素的问题。
2. 下面程序的功能是用递归算法将一个整数按逆序存放到一个字符数组中。如123存放成321。请填空:
【答案】
【解析】通过递归算法,首先找到最高位的值,将其放到str 对应的数组中,依次反向获取从高位到地位的值,将其放到数组中,完成了将整数逆序放到一个字符数组中。
3.
每一棵树都能唯一地转换为它所对应的二叉树。若已知一棵二叉树的前序序列是中序序列是前庁序列是_____。
【答案】前序是。
4. 在哈希函数
【解析】树的抑序序列对应二叉树的前序序列. 该二叉树转换成森林吋含三棵树. 其第一棵树的
.
,则它的后庁序列是_____。设上述二叉树是由某棵树转换而成,则该树的
中,P 值最好取_____。
【答案】小于等于表长的最大素数或不包含小于20的质因子的合数
【解析】在使用除留余数法时,对除数P 的选择很重要。若P 选的不好,容易产生同义词。一般情况下,可以选P 为质数或不包含小于20的质因素的合数。
5. 下列程序是快速排序的非递归算法,请填写适当的语句,完成该功能。
【答案】
【解析】快速排序(quicksort )的基本思想是,通过一趟排序将待排记录分割成独立的两部分,其中一部分记录的关键字均比另一部分记录的关键字小,则可分别对这两部分记录继续进行排序,以达到整个序列有序。
6. 建立索引文件的目的是_____。
【答案】提高查找速度
7. 在一个具有n 个单元的顺序栈中,假定以地址高端(即下标为n 的单元)作为栈底,以top 作为栈顶指针,则当向栈中压入一个元素时,top 的变化是top=_____。
【答案】
【解析】由于栈底在地址高端,栈中压入一个元素时,栈顶向地址底端移动一个单位,
所以
8. 设数组数组中任一元素均占内存48个二进制位,从首地址2000开始连续存放在主内存里,主内存字长为16位,那么
(1)存放该数组至少需要的单元数是_____;
(2)存放数组的第8列的所有元素至少需要的单元数_____; (3)数组按列存储时,元素【答案】270; 27; 2204 【解析】
数组的元素个数为需要
第8列有9个元素,共占
因为每个元素占内存48个二进制位,即6个字节。故总
个单元数。
个字节,因此至少需要
个单元数。由题知,每个元素占3
个字节,因为主内存字长为16位,即2个字节,所以至少需要
的起始地址是_____。
个单元。按列存储时,的起始地址为
9. 对于给定的元素,可以构造出的逻辑结构有_____,_____,_____,_____四种。
【答案】集合;线性结构;树形结构;图状结构(网状结构)
10.设广义表
则
是_____tail(L )是_____;L 的长度是_____;深度是_____。
;;2;2 【答案】( )(( ))
【解析】广义表的表头是表的第一个元素,表尾是除了第一个元素外其余的所有的元素构成的表;表的长度指表中元素的个数;表的深度指展开后括号的层数。
二、选择题
11.若无向图G= (V , E)中含7个顶点,则保证图G 在任何情况下都是连通的,则需要的边数最少是( )。
A.6 B.15 C.16 D.21
【答案】C
【解析】要保证无向图G 在任何情况下都是连通的,即任意变动图G 中的边,G 始终保持连通。首先需要图G 的任意6
个结点构成完全连通子图然后再添加一条边将第7个结点与
需
条边,
连接起来,共需16条边。本题非常容易错误地选择选项A ,
主要原因是对“保证图G 在任何情况下都是连通的”的理解,分析选项A ,在图G 中,具有7个顶点6条边并不能保证其一定是连通图,即有n-1 条边的图不一定是连通图。分析选项D ,图G 有7个顶点21条边,那么图G —定是无向完全图,无向完全图能 保证其在任何情况下都是连通的,但是这不符合题目中所需边数最少的要求。
12.在一个有N 个元素的有序单链表中查找具有给定关键字的结点,平均情况下的时间复杂性为( )。
【答案】B
【解析】二分查找的时间复杂度为
在一个用N 个元素的有序单链表中查找具有给定
关键字的结点,因为查找是从头结点开始的,需要使用指针顺序往下查找,因此时间复杂度为