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

2017年天津大学数据结构复试仿真模拟三套题

  摘要

一、应用题

1. 设LS 是一个线性表,

若采用顺序存储结构,则在等概率的前提下,插

之间

的概率

入一个元素需要平均移动的元素个数是多少? 若元素插

【答案】需要分两种情况讨论:

,插入位置0..n ,则平均移动个数为(1)等概率(后插)

(2)若不等概率,则平均移动的元素个数为

2. 请回答下列关于堆(Heap )的一些问题:

(1)堆的存储表示是顺序的还是链接的?

(2)设有一个最小堆,即堆中任意结点的关键码均不大于它的左子女和右子女的关键码。其具有最大值的元素可能在什么地方?

(3)对n 个元素进行初始建堆的过程中,最多做多少次数据比较(不用大0表示法)? 【答案】(1)堆的存储是顺序的。

(2)最大值元素一定是叶结点,在最下两层上。

(3)在建含有n 个元素、深度为h 的堆时,其比较次数不超过4n ,推导如下: 由于第i 层上的结点数至多是

以它为根的二叉树的深度为

则调用

次筛选算

法时总共进行的关键字比较次数不超过下式之值:

3. 某计算机字长16位,主存地址空间大小为128KB , 按字编址,采用单字长指令格式,指令各字段定义如下:

源操作数目的操作数

转移指令采用相对寻址方式,相对偏移量用补码表示,寻址方式定义如下:

则插入一个元素需要平均移动的元素个数又是多少?

注:(X )表示存储器地址X 或寄存器X 的内容。请回答下列问题:

(1)该指令系统最多可有多少条指令? 该计算机最多有多少个通用寄存器? 存储器地址寄存器(MAR )和存储器数据寄存器(MDR )至少各需要多少位?

(2)转移指令的目标地址范围是多少?

(3)若操作码0010B 表示加法操作(助记符为add ), 寄存器R4和R5的编号分别为100B 和101B ,R4的内容为1234H ,R5的内容为5678H , 地址1234H 的内容为5678H ,地址5678H 中的内容为1234H ,则汇编语句改变后的内容是什么?

【答案】(1)指令操作码占4位,则指令系统最多可有量为128KB ,计算机字长为16位,故主存有需16位。

(2)由于寄存器字长为16位,所以转移指令的目标地址范围为0000H 〜FFFFH 。。 (3)汇编语句寄存器

R5和地址为5678H 的存储单元的内容会改变,改变后的内容分别为

4. 对给定文件(28,07,39,10,65,14,61,17,50,21)选择第一个元素28进行划分,写出其快速排序第一遍的排序过程。

【答案】快速排序的思想如下:首先将待排序记录序列中的所有记录作为当前待排序区域,,凡其关键字不大干枢轴的记录均移动至该记录之前,以第一个记录的关键字作为枢轴(或支点)

凡关键字不小于枢轴的记录均移动至该记录之后。致使一趟排序之后,记录的无序序割成两部分:

将分

然后再递归地将

+对应的机器码为

该指令执行后,

条不同的指令;指令操作上占6

个通用寄存器;主存容

个存储单元,故MDR 和MAR 至少各

位,寻址方式占3位,于是寄存器编号占3位,该计算机最多可以有

(逗号前为源操作数,逗号后为目的操作数)

对应的机器码是什么(十六进制表示)?该指令执行后,哪些寄存器和存储单元的内容会改变?

进行快速排序。快速排序在记录有序时蜕变为起泡排序,可用“三者取中”法

改善其性能,避免最坏情况的出现。本题解答如下:

初始序列:[28],07,39,10,65,14,61,17,50,21 21移动:21,07,39,10,65,14,61,17,50,[]

39移动:21,07,[],10,65,14,61,17,50,39 17移动:21,07,17,10,65,14,61,[],50,39 65移动:21,07,17,10,[],14,61,65,50,39 14移动:21,07,17,10,14,[28],61,65,50,39

5. 设散列表为数分别为

注:%是求余数运算中,函数码序列为

(2)计算搜索成功的平均搜索长度

表示颠倒十进制数x 的各位,如

即表的大小为

等。若插入的关键

,现采用双散列法解决冲突。散列函数和再哈希函

(1)试画出插入这8个关键码后的哈希表;

【答案】(1)插入这8个关键码后的哈希表如表所示:

表 插入关键字后的哈希表

(2)

6. 阅读下列算法,指出算法A 的功能和时间复杂性。

【答案】功能:将原单循环链表分解成两个单循环链表:其一包括结点h 到结点g 的前驱结点;另一个包括结点g 到结点h 的前驱结点。

时间复杂度:0(n )。

7. 证明:置换选择排序法产生的初始归并段的长度至少为m (m 是所用缓冲区的长度)。

【答案】证明:由置换选择排序思想,第一个归并段中第一个元素是缓冲区中最小的元素,,缓以后每选一个元素都不应小于前一个选出的元素,故当产生第一个归并段时(即初始归并段)冲区中m 个元素中除最小元素之外,其他m-1个元素均大于第一个选出的元素,即当以后读入元素均小于输出元素时,初始归并段中也至少能有原有的m 个元素。证毕。