2018年北京市培养单位高能物理研究所863计算机学科综合(专业)之数据结构考研核心题库
● 摘要
一、填空题
1. 下列程序是快速排序的非递归算法,请填写适当的语句,完成该功能。
a 中存放待排序的关键字
【答案】
【解析】快速排序(quick sort)的基本思想是,通过一趟排序将待排记录分割成独立的两部分,其中一部分记录的关键字均比另一部分记录的关键字小,则可分别对这两部分记录继续进行排序,以达到整个序列有序。
2.
线性表
【答案】(n﹣1)/2
【解析】删除第一个元素需要移动n ﹣1次,以此类推,删除最后一个元素需要移动0次。平均次数为(n﹣l)*n/n/2=(n﹣l)/2。
第 2 页,共 65 页
用数组表示,假定删除表中任一元素的概率相同,则删除一个元
素平均需要移动元素的个数是_____。
3. 高度为h 的堆中,最多有_____元素,最少有_____个元素。
【答案】
。当最后一层只有
【解析】当这个堆构成的是满二叉树时,元素的个数最多,元素个数为
一个元素时,此时堆的元素个数最少,元素个数为。
4. 如某二叉树有20个叶结点,有30个结点仅有一个孩子,则该二叉树的总结点数为_____。
【答案】69
【解析】二叉树叶结点数为20, 则度为2的结点数为19, 所以总的结点数为20+19+30=69。
5. 在n 个顶点的非空无向图中,最多有_____个连通分量。
【答案】n
【解析】当n 个顶点之间没有边,都是孤立的顶点时,有n 个连通分量。
6. 克鲁斯卡尔算法的时间复杂度为_____,它对_____图较为适合。
【答案】
;边稀疏
7. 一棵有11个结点的满二叉树有_____个度为1的结点、有_____个分支(非终端) 结点和_____个叶子,该满二叉树的深度为_____。
【答案】
或
【解析】满二叉树没有度为1的结点,度为0的结点等于度为2的结点个数+1。
8. 当广义表中的每个元素都是原子时,广义表便成了_____。
【答案】线性表
【解析】如果每个元素都是原子,则元素不可分。此时的元素是只有一对一的关系,所以广义表变成了线性表。
9. 以下程序的功能是实现带附加头结点的单链表数据结点逆序连接,请填空完善之。
h 为附加头结点指针
(_____)
_____;
【答案】(1)p!=NULL //链表未到尾就一直进行 (2)q //将当前结点作为头结点后的第一元素结点插入
第 3 页,共 65 页
10.根据线性表的链式存储结构中每一个结点包含的指针个数,将线性链表分成_____和_____;而又根据指针的连接方式,链表又可分成_____和_____。
【答案】单链表;双链表;(动态) 链表;静态链表
【解析】线性表的链式存储结构根据每个结点包含的指针个数分为单链表和双链表,单链表只包含一个指针,指向后续元素,双链表包括两个指针,指向前一个元素和后续元素。根据指针的连接方式,链表可分为动态链表和静态链表。静态链表的指针指向下一个元素的编号,动态链表的指针指向下一个元素的物理位置。
二、判断题
11.由于希尔排序的最后一趟与直接插入排序过程相同,因此前者一定比后者花费的时间更多。( )
【答案】×
【解析】希尔排序把序列分成很多小序列,对于直接插入排序,记录少时的效率会大大提高。并且序列在基本有序的情况下,直接插入排序也会提高。
12.归并排序辅助存储为O(1)( )
【答案】×
【解析】归并排序的辅助存储是O Cn)o 13.2,n ,a 2,a n
若…,…,桟的输入序列是1,输出序列是a 1,( )
【答案】 ×
【解析】出找序列不一定满足a 1>a i+1... >a n ,比如1进栈,然后出找,a 1=1。
14.队列逻辑上是一个下端和上端既能增加又能减少的线性表。( )
【答案】 ×
【解析】队列只在下端(队尾) 增加,在上端(队头) 减少。
15.栈和队列都是限制存取点的线性结构。( )
【答案】 √
16.对大小均为n 的有序表和无序表分别进行顺序查找,在等概率查找的情况下,对于查找成功,它们的平均查找长度是相同的,而对于查找失败,它们的平均查找长度是不同的。( )
【答案】√
【解析】查找成功的情况下,顺序表和无序表的平均查找长度是相同的,对于查找失败,无序表需要查找到表尾,而顺序表不需要查到表尾就能确定,所以顺序表的查找长度小于无序表的查找长度。
第 4 页,共 65 页
则有:。
。