当前位置:问答库>考研试题

2018年北京市培养单位计算机与控制学院863计算机学科综合(专业)之数据结构考研基础五套测试题

  摘要

一、填空题

1. 串是一种特殊的线性表,_____;其特殊性表现在_____;串的两种最基本的存储方式是_____、两个串相等的充分必要条件是_____。

【答案】其数据元素都是字符;顺序存储;链式存储;串的长度相等且两串中对应位置的字符也相等

2. 对于一个具有n 个结点的单链表,在已知的结点半p 后插入一个新结点的时间. 复杂度为_____,在给定值为x 的结点后插入一个新结点的时间复杂度为_____。

【答案】O(1);O(n)

【解析】第一种情况只需直接修改指针的指向。第二种情况必须从头结点遍历找到x 的结点。

3. 在二叉树中,指针p 所指结点为叶结点的条件是_____。 【答案】

【解析】叶子节点的左右孩子都不存在。

4. 栈是_____的线性表,其运算遵循_____的原则。

【答案】操作受限(或限定仅在表尾进行插入和删除操作) ;后进先出

5. 文件可按其记录的类型不同而分成两类,即 _____和_____文件。

【答案】操作系统文件;数据库

6. 空格串是指_____,其长度等于_____。

【答案】由空格字符(ASCII值32) 所组成的字符串;空格个数

7. 在单链表L 中,指针P 所指结点有后继结点的条件是_____

【答案】P ﹣>next! =NULL

【解析】指针所指节点的指针域所指向的元素非空,说明该指针所指节点有后继结点。

8. 在一个具有n 个单元的顺序栈中,假定以地址高端(即下标为n 的单元) 作为栈底,以top 作为栈顶指针,则当向栈中压入一个元素时,top 的变化是top =_____。

【答案】top ﹣1

【解析】由于栈底在地址高端,栈中压入一个元素时,栈顶向地址底端移动一个单位,所以

top ﹣1。

9. 以下是用类C 语言写出的算法,该算法将以二叉链表存储的二叉树中的叶结点按从左到右的顺序链成一个带头结点的双向循环链表,链接时,结点的Lchild 域作为前链域,指向结点的直接前驱,结点的Rchild 域作为后链域,指向结点的直接后继。算法中,使用一个顺序栈stack , 栈顶指针为top ,P ,t 为辅助指针,head 为双向循环链表的头指针。试填充算法中的空格,使算法完整。

【答案】

10.属于不稳定排序的有_____。

【答案】希尔排序、简单选择排序、快速排序、堆排序等

二、判断题

11.有n 个数顺序(依次) 入栈,出栈序列有Cn 种,

【答案】 √

12.哈希表的结点中只包含数据元素自身的信息,不包含任何指针。( )

【答案】×

【解析】哈希表的结点中可以包括指针,指向其元素。如哈希链表。

13.排序的稳定性是指排序算法中的比较次数保持不变,且算法能够终止。( )

【答案】×

【解析】排序的稳定性指:假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对次序保持不变,即在原序列中,ri=rj,且ri 在rj 之前,而在排序后的序列中,ri 仍在ij 之前,则称这种排序算法是稳定的;否则称为不稳定的。

( )

14.串长度是指串中不同字符的个数。( )

【答案】 ×

【解析】不是,串长度是指串中字符的总个数。需要注意的是,在计算字符串的长度时,不要漏掉了空格。

15.排序算法中的比较次数与初始元素序列的排列无关。( )

【答案】×

【解析】这个要看是哪个排序算法,比如快速排序,初始序列为有序的情况比较的次数就相对于无序的多。

16.不同的求最小生成树的方法最后得到的生成树是相同的。( )

【答案】×

【解析】对于一个带权连通无向图G=(V,E) , 生成树不同,每棵树的权也可能不同。若生成树T 上的所有边的权值之和最小,则T 称为G 的最小生成树。因此可以看出,最小生成树不是唯一的,最小生成树的权值之和总是唯一的。

17.完全二叉树肯定是平衡二叉树。( )

【答案】×

【解析】从平衡因子定义看,完全二叉树任一结点的平衡因子的绝对值确实是小于等于1。但是,平衡二叉树本质上是二叉排序树,完全二叉树不一定是排序树。故不能说完全二叉树是平衡二叉树。

18.在外部排序过程中,对长度为n 的初始序列进行“置换-选择”排序时,可以得到的最大初始有序段的长度不超过n/2。( )

【答案】×

【解析】当输入文件以关键字的升序排序时,只能得到一个长度为文件长度的初始归并段

19.广义表的取表尾运算,其结果通常是个表,但有时也可是个单元素值。( )

【答案】 ×

【解析】广义表的取表尾运算,是非空广义表除去表头元素,剩余元素组成的表,不可能是原子。

20.队列和栈都是运算受限的线性表,只允许在表的两端进行运算。( )

【答案】 ×

【解析】栈只能在一端进行操作,队列可以在表的两端进行运算。

三、算法设计题