2017年北京市培养单位光电研究院866计算机原理之数据结构考研强化模拟题
● 摘要
一、填空题
1. 在有n 个顶点的有向图中,每个顶点的度最大可达。
【答案】2(n-l )
【解析】当有向图为完全连通图时每个顶点的度达到最大,出度入度均为n-1。 2. 对于一个具有n 个结点的二叉树,当它为一棵_____二叉树时具有最小高度,当它为一棵_____ 时. 具有最大高度
【答案】完全;只有一个叶结点的二叉树
3. 设数组
数组中任一元素
均占内存48个二进制位,从首地址2000开始
连续存放在主内存里,主内存字长为16位,那么
(1)存放该数组至少需要的单元数是_____;
(2)存放数组的第8列的所有元素至少需要的单元数_____; (3)数组按列存储时,元素【答案】270; 27; 2204 【解析】数组的元素个数为需要
第8列有9个元素,共占
因为每个元素占内存48个二进制位,即6个字节。故总
个单元数。
个字节,因此至少需要
个单元数。由题知,每个元素占3
个字节,因为主内存字长为16位,即2个字节,所以至少需要
的起始地址是_____。
个单元。按列存储时,的起始地址为
4. 在进行入栈运算时应先判别栈是否_____:在进行出栈运算时应先判别栈是否_____:当栈中元素为n 个,进行入栈运算时发生上溢,则说明该栈的最大容量为_____。为了增加内存空间的利用率和减少溢出的可能性,由两个栈共享一片连续的空间时,应将两栈的_____分别设在内存空间的两端,这样只有当_____时才产生溢出。
【答案】满;空;n ; 栈底;两栈顶指针相邻(即值之差的绝对值为1)
5. 数组的存储结构采用_____存储方式。
【答案】顺序存储结构
【解析】数组本身的存储结构是线性的,也就是说它是连续存储的。
6. 完善算法:求KMP 算法.next 数组。
END ; 【答案】
7. 分别采用堆排序,快速排序,起泡排序和归并排序,对初态为有序的表,则最省时间的是_____算法,最费时间的是_____算法。
【答案】起泡;快速
,【解析】当初态为有序表时,冒泡排序只需要进行一趟比较即可,此时时间复杂度为〇(n )而快速排序算法需要比较的次数达到最大,时间复杂度为
8. 设二维数组A 的行和列的下标范围分别为和序存储,第一个元素的存储起始位置为b ,则存储位置为
【答案】
当其值为
每个元素占2个单元,按行优先顺处的元素为_____。
【解析】令这个元素的行标为i ,列标为j 。则它的存储位置是
时,则i=2,j=3。
9. n 个顶点的有向图用邻接矩阵array 表示,下面是其拓扑排序算法,试补充完整。
注:(1)图的顶点号从0开始计;
(2)indegree 是有n 个分量的一维数组,放顶点的入度, (3)函数crein 用于记算顶点入度;
(4)有三个函数push (data ), pop( ), check( )其含义为数据data 入浅,出栈和测试栈是否空(不空返回1, 否则0)。
)
.
【答案】0; j; i; 0; indegree[i]=0; [vex][i]; k==l; indegree[i]=0
【解析】有向图用邻接矩阵表示时,顶点i 的入度等于第i 列的所有元素之和。拓扑排序过程:
;
(“图有回路”)
首先将入度 为0的顶点全部进栈。然后弹出栈顶结点,并将与弹出的顶点相连的其它顶点的入度 减一,然后判断这些顶点的 入度是否为零,如果为零,继续进栈,重复这些操作,完成拓扑排序。
10.对于给定的元素,可以构造出的逻辑结构有_____,_____,_____,_____四种。
【答案】集合;线性结构;树形结构;图状结构(网状结构)
二、判断题
11.深度为k 的二叉树中结点总数小于等于
【答案】√
【解析】深度为K 的二叉树,当结点数最多时为满二叉树,此时结点数为
12.广义表的取表尾运算,其结果通常是个表,但有时也可是个单元素值。( )
【答案】×
【解析】广义表的取表尾运算,是非空广义表除去表头元素,剩余元素组成的表,不可能是原子。
13.在初始数据表已经有序时,快速排序算法的时间复杂度为
【答案】×
【解析】当初始数据表有序,此时快速排序所需要比较的次数最多,快速排序算法的时间复杂度为〇(n2)。
14.堆是满二叉树。( )
【答案】× 【解析】堆的定义: n 个关键字序列
且
且
称为堆,当且仅当该序列满足如下性质(简称为堆性质):
( )
( )
小根堆:满足第①种情况的堆; 大根堆:满足第②种情况的堆。
因此并不能保证堆是满二叉树。
15.如果数据元素保持有序,则查找时就可以采用折半查找方法。( )
【答案】×
【解析】采用折半查找的条件是数据元素有序且存储方式为顺序存储,对于常见的链式存储,在进行查找时主要依靠指针来操作。