2018年北京市培养单位计算机与控制学院863计算机学科综合(专业)之数据结构考研核心题库
● 摘要
一、填空题
1. 已知二维数组
【答案】1196
【解析】设元素的行标为i ,列标为j 。则它的存储位置为:l000+[(i﹣l)*l0+(j﹣0)]*4
2. 以下程序的功能是实现带附加头结点的单链表数据结点逆序连接,请填空完善之。
h 为附加头结点指针
(_____)
_____;
【答案】(1)p!=NULL //链表未到尾就一直进行
(2)q //将当前结点作为头结点后的第一元素结点插入
3. 在有n 个顶点的有向图中,每个顶点的度最大可达_____。
【答案】2(n-1)
【解析】当有向图为完全连通图时每个顶点的度达到最大,出度入度均为n -1。
4. 以下是用类C 语言写出的算法,该算法将以二叉链表存储的二叉树中的叶结点按从左到右的顺序链成一个带头结点的双向循环链表,链接时,结点的Lchild 域作为前链域,指向结点的直接前驱,结点的Rchild 域作为后链域,指向结点的直接后继。算法中,使用一个顺序栈stack , 栈顶指针为top ,P ,t 为辅助指针,head 为双向循环链表的头指针。试填充算法中的空格,使算法完整。
第 2 页,共 59 页 中每个元素占4个单元,在按行优先方式将其存储到起始地址为1000的连续存储区域时,A[5,9]的地址是: _____。
【答案】
5. 设二维数组A 的行和列的下标范围分别为[0:8]和[0:10],每个元素占2个单元,按行优先顺序存储,第一个元素的存储起始位置为b ,则存储位置为b+50处的元素为_____。
【答案】A[2][3]
【解析】令这个元素的行标为i ,列标为j 。则它的存储位置是(ll*i+j +l ﹣l)*2+b 。当其值为b +50时,则i =2,j =3。
6. 设为哈夫曼树的叶结点数目,则该哈夫曼树共有_____个结点。 【答案】
【解析】哈夫曼树只有度为0和2的节点。
7. 执行顺序查找时,存储方式可以是_____,折半查找时,要求线性表_____,分块查找时要求线性表_____,而哈希表的查找,要求线性表的存储方式是_____。
【答案】顺序存储或链式存储;顺序存储且有序;块内顺序存储,块间有序;散列存储
8. 如下的算法分别是后序线索二叉树求给定结点node 的前驱结点与后继结点的算法,
请在算法空格处填上正确的语句。 设线索二叉树的结点数据结构为
其中:left 指向其左孩子,
【答案】
第 3 页,共 59 页
, left 指向其前驱;,right 指向其右孩子,,,right 指向其后继。
9. 数据结构中评价算法的两个重要指标是_____。
【答案】算法的时间复杂度和空间复杂度
10.N 个顶点的连通图用邻接矩阵表示时,该矩阵至少有_____个非零元素。 【答案】
【解析】所谓连通图一定指的是无向图,有向图会称作强连通图。连接N 个顶点,至少需要N -1条边就可以了。由于无向图的每一条边同时关联了两个顶点。因此用邻接矩阵表示时,该矩阵至少有2(N-1) 个非零元素。
二、判断题
11.算法的优劣与算法描述语言无关,但与所用计算机有关。( )
【答案】 ×
【解析】算法的优劣和它的时间复杂度和空间复杂度有关,与算法描述语言和所用计算机都无关。
12.栈和队列都是限制存取点的线性结构。( )
【答案】 √
13.排序的稳定性是指排序算法中的比较次数保持不变,且算法能够终止。( )
【答案】×
【解析】排序的稳定性指:假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对次序保持不变,即在原序列中,ri=rj,且ri 在rj 之前,而在排序后的序列中,ri 仍在ij 之前,则称这种排序算法是稳定的;否则称为不稳定的。
14.在二叉排序树中插入一个新结点,总是插入到叶结点下面。( )
【答案】×
【解析】不一定。插入二叉排序树的原则:将新节点元素值与根结点元素值相比较,如小于根结点元素值则插入到左子树口,否则插入到右子树中。所以就可能插在一个度为1的结点下面。
15.由于希尔排序的最后一趟与直接插入排序过程相同,因此前者一定比后者花费的时间更多。( )
【答案】×
【解析】希尔排序把序列分成很多小序列,对于直接插入排序,记录少时的效率会大大提高。并且序列在基本有序的情况下,直接插入排序也会提高。
16.—个有向图的邻接表和逆邻接表中的结点个数一定相等。( )
【答案】√
第 4 页,共 59 页