2018年河南大学软件学院928专业基础课(程序设计、数据结构)[专业硕士]之数据结构考研仿真模拟五套题
● 摘要
一、单项选择题
1. 某计算机存储器按字节编址, 采用小端方式存放数据。假定编译器规定int 和short 型长度分别为32位和16位, 并且数据按边界对齐存储。某C 语言程序段如下:
若record 变量的首地址为0xC008, 则地址中内容及的地址分别为( )。 A. B. C. D.
【答案】D 。
32位整数a 需要占4个字节, 16位整数c 需要占2个字节, 而字符数据b 占一个字节。【解析】
a=273, 转换成十六进制是111H , 采用小端方式存放数据, 地址
边界对齐存储,
地址
中存放c 。
2. 先序序列为a , b , c , d 的不同二叉树的个数是( )。
A.13
B.14
C.15
D.16
【答案】B
【解析】二叉树的先序遍历定义为:若二叉树为空, 则空操作; 否则, 访问根节点, 然后先序遍历左子树, 最后先序遍历右子树。本题中, 结点a 为二叉树的根节点, 左右子树的先序遍历可能存在下面四种情况:
①左子树为空, bcd 为右子树; ②b 为左子树, cd 为右子树; ③bc 为左子树, d 为右子树; ④bcd 为左子树, 右子树为空。
然后将左右子树继续分解, 如第①种情况的右子树先序遍历(bcd)可能有:
A. 左子树为空, 右子树为cd ;
b. 左子树为c , 右子树为d ;
第 2 页,共 79 页 中的内容为11H 。由于数据按中存放b ,
地址中空闲,
地址中存放a ,
地址
c. 左子树为cd , 右子树为空。
按照这种方法继续分解左右子树, 直到不能再分解为止, 可得第①和④种情况各包含5种不同情况, 第②和③种情况各包含2种情况, 因此总共有14种不同的二叉树。
3. 采用开址定址法解决冲突的哈希查找中,发生集聚的原因主要是( )。
A. 数据元素过多
B. 负载因子过大
C. 哈希函数选择不当
D. 解决冲突的算法选择不好
【答案】D
【解析】开放定址法就是从发生冲突的那个单元开始,按照一定的次序,从散列表中查找出一个空闲的存储单元,把发生冲突的待插入元素存入到该单元中的一类处理冲突的方法。
4. 一棵3阶B-树中含有2047个关键字,包括叶结点层,该树的最大深度为( )。
A.11
B.12
C.13
D.14
【答案】B
5. 求整数阶乘的算法如下, 其时间复杂度是( )。
A.
B.0(n) C. 2D.O(n)
【答案】B 。
【解析】设fact(n)的运行时间函数是T(n)。
该函数中语句①的运行时间是0(1), 语句②的运行时间是
算的时间。
因此, 当
则,
第 3 页,共 79 页 , 其中O(1)为乘法运时
, ; 。
当11>1时,
即fact(n)的时间复杂度为O(n)。
通过上表可以看出, 显然转换过程中同时保存在栈中的操作符的最大个数是5。
6. 有n(n>0) 个分支结点的满二叉树的深度是( )。
A.n 2﹣l
B.log 2(n+1) +1
C.log 2(n+1)
D.log 2(n—1)
【答案】C
【解析】满二叉树的结点总数=分支的结点总数+非分支的结点总数。由于此树为满二叉树,
所以非分支的结点总数为1,所以满二叉树共有n +1个结点,所以满二叉树的深度为log 2 (n+1) 。
第 4 页,共 79 页
相关内容
相关标签