2017年吉林省培养单位长春光学精密机械与物理研究所863计算机学科综合(专业)之数据结构考研仿真模拟题
● 摘要
一、填空题
1. VSAM 系统是由_____、_____、_____构成的。
【答案】索引集;顺序集;数据集
2. 求最短路径的Dijkstra 算法的时间复杂度为_____。
【答案】
中,其下标值最大的分支结点为_____。
3. 设有个结点的完全二叉树顺序存放在向量
【答案】
【解析】最大的分支结点是最后一个叶子结点的父结点。
4. 有五个数据依次入栈:1,2, 3, 4, 5。在各种出栈的序列中,以3, 4先出栈的序列有_____。(3在4之前出栈)
【答案】3个
【解析】以3, 4先出栈的序列有34521、34215、34251共3个。
5. 深度为H 的完全二叉树至少有_____个结点; 至多有_____个结点; H 和结点总数N 之间的关系是_____。
【答案】
6. 在一个无向图的的邻接表中,若表结点的个数是m , 则图中边的条数是_____条。
【答案】m/2
【解析】对于无向图,在邻接表中,如果存在n 条边,则会有2n 个表结点。
7. 假定查找有序表中每个元素的概率相等,则进行折半查找时的平均查找长度为_____
【答案】37/12
【解析】折半查找时每个的次数如表所示:
表
平均查找次数为
8.
【答案】5
=_____
9. 对于一个具有n 个结点的单链表,在已知的结点半p 后插入一个新结点的时间. 复杂度为_____,在给定值为x 的结点后插入一个新结点的时间复杂度为_____。
【答案】
【解析】第一种情况只需直接修改指针的指向。第二种情况必须从头结点遍历找到x 的结点。
10.如某二叉树有20个叶结点,有30个结点仅有一个孩子,则该二叉树的总结点数为_____。
【答案】69
【解析】二叉树叶结点数为20, 则度为2的结点数为19, 所以总的结点数为20+19+30=69。
11.假设一个15阶的上三角矩阵A 按行优先顺序压缩存储在一维数组B 中,则非零元素在B 中的存储位置k=_____。(注:矩阵元素下标从1开始)
【答案】93
【解析】对于上三角矩阵
,将代入得93。
12.对于双向链表,在两个结点之间插入一个新结点需修改的指针共_____个,单链表为_____个。
【答案】4; 2
二、选择题
13.假定基准程序A 在某计算机上的运行时间为100秒,其中90秒为CPU 时间,其余为间。若CPU
速度提高
A.55秒 B.60秒 C.65秒 D.70秒 【答案】D 。 CPU 速度提高【解析】
即CRJ 性能提高比为1.5, 改进之后的CPU 运行时间
秒。速度不变,仍维持10秒,所以运行基准程序A 所耗费的时间为70秒。
14.5个字符有如下4种编码方案,不是前缀编码的是( )
A. B. C. D. 【答案】D
【解析】在一个字符集中,任何一个字符的编码都不是另一个字符编码的前缀。约定左分支
时
速度不变,则运行基准程序A 所耗费的时间是( )。
表示字符
右分支表示字符则可以用从根结点到叶子结点的路径上的分支字符串作为该叶
子结点字符的编码。如此得到的编码必是前缀编码。D 选项中,编码110是编码1100的前缀,故不符合前缀编码的定义。
15.4个圆盘的Hanoi 塔,总的移动次数为( )。
A.7 B.-8 C.15 D.16
【答案】C
【解析】Hanoi 问题总移动次数为:次。
16.若一棵二叉树的前序遍历序列为a ,e ,b ,d ,c ,后序遍历序列为b , c, d, e, a, 则根结点的孩子结点( )。
A. 只有e B. 有 e 、b C. 有 e 、c D. 无法确定 【答案】A 。
b , d, c, 后序遍历序列为b ,c , d, 【解析】由题目可知,若一棵二叉树的前序遍历序列为a , e,e , a , 其中a 为这棵二叉树的根结点,接下来,在前序遍历的第二个结点为e , 而后序遍历的倒数第二个结点为e , 说 明a 的孩子结点只有e 。
17.n 个结点的线索二叉树上含有的线索数为( )。
【答案】C
【解析】线索二叉树是利用二叉树的空链域加上线索,n 个结点的二叉树有n+1个空链域。
18.下列关于进程和线程的叙述中,正确的是( )。
A. 不管系统是否支持线程,进程都是资源分配的基本单位 B. 线程是资源分配的基本单位,进程是调度的基本单位 C. 系统级线程和用户级线程的切换都需要内核的支持 D. 同一进程中的各个线程拥有各自不同的地址空间 【答案】A 。
“线程是资源分配的基本单位,【解析】利用排除法来确定正确答案:进程是调度的基本单位”这句话说反了,明显错误。“系统级线程和用户级线程的切换都需要内核的支持”也不正确,因为用户级线程的切换由用户编写的RuntimeSystem 执行的,内核并不感知。“同一进程中的各个线程拥有各自不同的地址空间”明显错误,引入线程的目的就是为了同一进程的所有线程能共享进程的