2017年北京联合大学智能交通工程803软件基础之数据结构考研冲刺密押题
● 摘要
一、填空题
1. 阅读下列程序说明和裎序,填充程序中的_____。
【程序说明】本程序完成将二叉树中左、右孩子交换的操作。交换的结果如下所示(编科略)本程序采用非递归的方法,设立一个堆栈交换左、右子树的算法为:
(1)把根结点放入堆栈。
(2)当堆栈不空时,取出栈顶元素,交换它的左、右子树,并把它的左、右子树分别入栈。(3)重复(2)直到堆栈为空时为止。
存放还没有转换过的结点,它的栈顶指针为
。
(1)
{(2)
If ( (3) )
}
}}
【答案】
【解析】本题主要使用堆栈完成了二叉树左右子树交换的操作。首先根结点进栈,然后判断栈足否为空,如果不为空,则取栈顶元素,交换取出节点的左右指针。并将左右指针分别进桟,重复这一操作。完成二叉树左右孩子的交换。
2. 在n 个顶点的非空无向图中,最多有_____个连通分量。
【答案】n
【解析】当n 个顶点之间没有边,都是孤立的顶点时,有n 个连通分量。
3.
设单链表的结点结构为为指针域,已知指针px 指向单链表中data 为x 的结
_____;点,指针py 指向data 为y 的新结点,若将结点y 插入结点x 之后,贝懦要执行以下语句:
_____;
【答案】
4. 对于一个具有n 个结点的单链表,在已知的结点半p 后插入一个新结点的时间. 复杂度为_____,在给定值为x 的结点后插入一个新结点的时间复杂度为_____。
【答案】
【解析】第一种情况只需直接修改指针的指向。第二种情况必须从头结点遍历找到x 的结点。
5. 在图G 的邻接表表示中,每个顶点邻接表中所含的结点数,对于无向图来说等于该顶点的_____; 对于有向图来说等于该顶点的_____。
【答案】度;出度
6. 线性表
【答案】(n -1)/2
【解析】删除第一个元素需要移动n -i 次,以此类推,删除最后一个元素需要移动0次。平 均次数为
7. 设有个结点的完全二叉树顺序存放在向量
【答案】
用数组表示,假定删除表中任一元素的概率相同,则删除一个元素
平均需要移动元素的个数是_____。
中,其下标值最大的分支结点为_____。
【解析】最大的分支结点是最后一个叶子结点的父结点。
8. 在二叉树中,指针p 所指结点为叶结点的条件是_____。
【答案】
【解析】叶子节点的左右孩子都不存在。
9. 遍历图的过程实质上是_____,广度优先遍历图的时间复杂度_____; 深度优先遍历图的时间复杂度_____, 两者不同之处在于_____, 反映在数据结构上的差别是_____。
【答案】查找顶点的邻接点的过程;0(n+e); 0(n+e); 访问顶点的顺序不同;队列和栈 【解析】广度优先遍历图使用队列这种数据结构,深度优先遍历图使用栈这种数据结构。
10.克鲁斯卡尔算法的时间复杂度为_____,它对_____图较为适合。
【答案】O (eloge ); 边稀疏
二、选择题
11.一棵3阶B-树中含有2047个关键字,包括叶结点层,该树的最大深度为( )。
A.11 B.12 C.13 D.14
【答案】B
12.已知串其Next 数组值为( )。
A.0123 B.1123 C.1231 D.1211 【答案】A
【解析】KMP 算法的next 数组建立的原则
13.在有向图G 的拓扑序列中,若顶点V i 在顶点V j 之前,则下列情形不可能出现的是( ) 。
A.G 中有弧 【解析】若想实现图的一个拓扑排序,需要满足的一个条件为:若顶点A 在序列中排在顶点B 的前面,则在图中不存在从顶点B 到顶点A 的路径。又因为若G 中有一条从V j 到V i 的路径,则在拓扑序列中V i 不可能在V j 前。 14.设与某资源相关联的信号量初值为3, 当前为1,若M 表示该资源的可用个数,N 表示等待该资源的进程数,则M ,N 分别是( )。 A.0、1 B.1、0 C.1、2 D.2、0 【答案】B 【解析】信号量初值是3表示资源数有3个,当前为1表示已经用掉2个,剩余可用的资源数就只有1个了,由于资源有剩余,可见没有其他进程等待使用该资源,故进程数为0。