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 个元素。证毕。