当前位置:问答库>考研试题

2018年北京市培养单位声学研究所866计算机原理之数据结构考研强化五套模拟题

  摘要

目录

2018年北京市培养单位声学研究所866计算机原理之数据结构考研强化五套模拟题(一) ... 2 2018年北京市培养单位声学研究所866计算机原理之数据结构考研强化五套模拟题(二) ... 8 2018年北京市培养单位声学研究所866计算机原理之数据结构考研强化五套模拟题(三) . 15 2018年北京市培养单位声学研究所866计算机原理之数据结构考研强化五套模拟题(四) . 21 2018年北京市培养单位声学研究所866计算机原理之数据结构考研强化五套模拟题(五) . 29

一、算法设计题

1. 假设一个仅包含二元运算符的算术表达式以链表形式存储在二叉树BT 中,写出计算该算术表达式值的算法。

【答案】算法如下:

以后序遍历算法求以二叉树表示的算术表达式的

.

2. 写出一个递归算法来实现字符串逆序存储。

【答案】算法如下:

//字符串逆序存储的递归算法

r

//需要使用静态变量

//

规定

是字符串输入结束标志

//字符串逆序存储

求左子树表示的子表达式的值

求右子树表示的子表达式的值

//字符串结尾标记

//结束算法InvertStore

3. 给定nxm 矩阵

并设

设计一算法判定x 的值是否在A 中,要求时间复杂度

为O(m+n) 。

【答案】算法如下:

//n*m矩阵A ,行下标从a 到b ,列下标从c 到d ,本算法査找x 是否在矩阵A 中

//flag是成功査到x 的标志

//假定x 为整型

(“矩阵A 中无

算法search 结束。

4. 试为二叉树写出一个建立三叉链表的算法,并在此三叉链表中删去每一个元素值为x 的结点,以及以它为根的子树,且释放相应存储空间。二叉树的三叉链表的描述为:

{二叉树根结点的指针}

【答案】算法如下:

生成三叉链表的二叉树(题目给出PASCAL 定义,下面用类C 语言书写

)

是二叉树结点指针的一维数组,容量足够大

一维数组最后元素的下标

元素或虚结点

根结点

双亲结点和子女结点用指针链上

结束

元素\n",x) ;

5. 已知指针P 指向带表头的中根次序线索二叉树中的某结点,试写一算法FFA(P,q) , 该算法寻找结点P 的父亲结点q 。设线索二叉树的结点结构、表头结点结构和空树结构分别为(LTAG,LLINK ,INFO , RL1NK ,RTAG) ,且规定线索树的最左下结点的LLINK 域和最右下结点的RLINKt 域指向表头。

【答案】算法如下:

在中序线索树t 上,求结点p 的双亲结点q

暂存

找P 的中序最右下的结点

顺右线索找到q 的后继(P的袓先结点

)

若后继是头结点,则转到根结点

根结点无双亲

找最右结点的过程中回找到

P

结束FFA

准备到左子树中找

P

二、应用题

6. 为什么文件的倒排表比多重表组织方式节省空间?

【答案】倒排表有两项,一是次关键字值,二是具有相同次关键字值的物理记录号,这些记录号有序且顺序存储,不使用多重表中的指针链接,因而节省了空间。

7. 设某计算机的逻辑地址空间和物理地址空间均为64KB ,按字节编址. 若某进程最多需要6页(Page)数据存储空间,页的大小为1KB ,操作系统采用固定分配局部置换策略为此进程分配4个页框(PageFrame).在时刻260前的该进程访问情况如下表所示(访问位即使用位).

当该进程执行到时刻260时,要访问的逻辑地址为17CAH 的数据,请回答下列问题: (1)该逻辑地址对应的页号是多少?

(2)若采用先进先出(FIFO)置换算法,该逻辑地址对应的物理地址是多少? 要求给出计算过程. (3)若采用时钟(CLOCK)置换算法,该逻辑地址对应的物理地址是多少? 要求给出计算过程.(设搜索下一页的指针沿顺时针方向移动,且当前指向2号页框,如图所示)