2018年电子科技大学基础与前沿研究院820计算机专业基础之数据结构考研仿真模拟五套题
● 摘要
一、填空题
1. 索引顺序文件既可以顺序存取,也可以 _____存取。
【答案】随机
2. 分别采用堆排序,快速排序,起泡排序和归并排序,对初态为有序的表,则最省时间的是_____算法,最费时间的是_____算法。
【答案】起泡;快速
【解析】当初态为有序表时,冒泡排序只需要进行一趟比较即可,此时时间复杂度为O(n),
2
而快速排序算 法需要比较的次数达到最大,时间复杂度为O (n) 。
3. 试利用下列栈和串的基本操作完成下述填空题。
initstack(S)置S 为空栈; push(S,X) 元素X 入栈; pop(S)出栈操作; gettop(S)返回栈顶元素; sempty(S)判栈空函数; setnull(St)置串St 为空串; length(st)返回串st 的长度;
equal(S1,S 2) 判串S 1并S 2是否相等的函数; concat(S1,S 2) 返回联接S 1和S 2之后的串; sub(S,i ,1) 返回S 中第i 个字符;
empty(st)判串空函数
FUNCinvert(pre:string ;V ARexp :string) :boolean ;
{若给定的表达式的前缀式pre 正确,本过程求得和它相应的表达式exp 并返回true ,否则exp 为空串,并返回false 。已知原表达式中不包含括弧,opset 为运算符的集合。
)
_____;_____;
_____THEN_____
IF_____THEN_____
(_____,_____);
(_____,_____);
_____
_____THEN
注意:每个空格只填一个语句。
【答案】(1)initstack(S)//栈s 初始化为空栈 (2)setnull(exp)//串exp 初始化为空串 (3)chinopset//判取出字符是否是操作符
(4)push(s,ch)//如ch 是运算符,则入操作符栈s (5)sempty(s)//判栈s 是否为空
(6)succ:=false//若读出ch 是操作数且栈为空,则按出错处理 (7)exp
(8)ch//若ch 是操作数且栈非空,则形成部分中缀表达式 (9)exp
(10)gettop(s)//取栈顶操作符 (11)pop(s)//操作符取出后,出栈
(12)sempty(s)//将pre 的最后一个字符(操作数) 加入到中缀式exp 的最后
4. 设为哈夫曼树的叶结点数目,则该哈夫曼树共有_____个结点。
【答案】
【解析】哈夫曼树只有度为0和2的节点。
5. 设有N 个结点的完全二叉树顺序存放在向量
【答案】
中,其下标值最大的分支结点为_____。
【解析】最大的分支结点是最后一个叶子结点的父结点。
二、单项选择题
6. 已知一棵二叉树的前序遍历结果为ABCDEF ,中序遍历结果为CBAEDF ,则后序遍历结果为( )。
A.CBEFDA B.FEDCBA
C.CBEDFA D. 不定 【答案】A
【解析】由前序结果可知A 为根节点,再由中序遍历结果知BC 为A 的左孩子,且C 为B 的左孩子结点,到此可排除B 项,按照这种逻辑依次推理,便可得出结果对于该类型题目,可以先根据前序遍历结果和中序遍历结果画出二叉树,然后后序遍历二叉树得到后序遍历序列。
7. 假定主存地址为32位, 按字节编址, 主存和Cache 之间采用直接映射方式, 主存块大小为4个字, 每字32位, 采用回写(Write Back) 方式, 则能存放4K 字数据的Cache 的总容量的位数至少是( )。
A.146k B.147K C.148K D.158K 【答案】B
【解析】Cache 和主存直接映射方式的规则为:主存储器分为若干区, 每个区与缓存容量相同; 每个区分为若干数据块, 每个块和缓存块容量相同; 主存中某块只能映象到Cache 的一个特定的块中。本题中, Cache 总共存放4K 字数据, 块大小为4个字, 因此cache 被分为要包含所存的数据4个字, 每个字32位, 18位标记位和一个有效位, 因此总容量为:
。
8. 用海明码对长度为8位的数据进行检/纠错时, 若能纠正一位错, 则校验位数至少为( )
A.2 B.3 C.4 D.5
【答案】C
【解析】设校验位的位数为k , 数据位的位数为n , 根据海明码编码k 和n 应满足下述关系。
。
n=8, 当k=4时, , 符合要求, 校验位至少是4位, 故答案为C 。
9. 某计算机存储器按字节编址, 采用小端方式存放数据。假定编译器规定int 和short 型长度分别为32位和16位, 并且数据按边界对齐存储。某C 语言程序段如下:
若record 变量的首地址为0xC008, 则地址中内容及的地址分别为( )。
个块, 由10
位表示。块内共16字节, 所以由4位表示, 于是标记位为32-10-14=18位。所以, Cache 的每一行需