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

2018年燕山大学信息科学与工程学院811数据结构考研仿真模拟五套题

  摘要

一、填空题

1. 在循环队列中,队列长度为n ,存储位置从0到,n ﹣1编号,以rear 指示实际的队尾元素,现要在此队列中插入一个新元素,新元素的位置是_____。

【答案】

2. 设有一个10阶对称矩阵A 采用压缩存储方式(以行为主序存储:a 11=l) , 则a 85的地址为_____。

【答案】33

【解析】设存储的元素的行标为i ,列标为j 。若i >=j ,则=i(i﹣l)/2+j 。若i <j 。则

3. 假定查找有序表

【答案】

平均查找次数为。

4. 对单链表中元素按插入方法排序的C 语言描述算法如下,其中L 为链表头结点指针。请填充算法中标出的空白处,完成其功能。

:_____:

{_____)

(_____、

:_____;_____;p =u ;

【答案】(1)L﹣>next =NULL //置空链表,然后将原链表结点逐个插入到有序表中 (2)p!=NULL //当链表尚未到尾,p 为工作指针

的地址为l +2+... +i ﹣l +j

的地址为j(j﹣l)/2+i 。将i =8,j =5代入得33。

中每个元素的概率相等,则进行折半查找时的平均查找长度为_____。

【解析】折半查找时每个的次数如表所示:

(3)q!=NULL //查P 结点在链表中的插入位置,这时q 是工作指针 (4)p﹣>next =r ﹣>next //将P 结点链入链表中

(5)r﹣>next =p //r是q 的前驱,u 是下个待插入结点的指针

5. 设T 是一棵结点值为整数的二叉排序树,A 是一个任意给定的整数。在下面的算法中,free_tree(T)在对二叉排序树丁进行后序遍历时释放二又排序树T 的所有结点

,首先在二叉排序树T 中查找值为A 的结点,根据查找情况分别进行如下

处理:(1)若找不到值为A 的结点,则返回根结点的地址(2)若找到值为A 的结点,则删除以此结点为根的子树,并释放此子树中的所有结点,若值为A 的结点是查找树的根结点,删除后变成空的二叉树,则返NULL ; 否则返回根结点的地址。

【答案】

6. 设有两个算法在同一机器上运行,其执行时闻分别为100n 2和2n ,要使前者快于后者,n 至少为_____。

【答案】15 【解析】当

时,100n2>2n,而,

2n

时,100n <2

二、判断题

7. 线性表采用链表存储时,结点和结点内部的存储空间可以是不连续的。( )

【答案】 ×

【解析】对于链式存储,数据元素之间的存储地址不一定是相邻的,即结点的存储空间可以是不连续的。而结点内部的存储空间需要是连续的,因为它是一个完整的数据。

8. 对两棵具有相同关键字集合的而形状不同的二叉排序树,按中序遍历它们得到的序列的顺序却是一致的。( )

【答案】√

【解析】形状不同的两个二叉排序树(关键字集合相同) ,在中序遍历下是输出排好序的序列,

所以顺序是一致的。

9. 为了很方便的插入和删除数据,可以使用双向链表存放数据。( )

【答案】 √

【解析】链式存储结构便于数据的插入和删除,但只能顺序访问表中的元素。

10.如果数据元素保持有序,则查找时就可以采用折半查找方法。( )

【答案】×

【解析】采用折半查找的条件是数据元素有序且存储方式为顺序存储,对于常见的链式存储,在进行查找时主要依靠指针来操作。

11.在任何情况下,归并排序都比简单插入排序快。( )

【答案】×

【解析】错误。待排序序列为正序时,简单插入排序比归并排序快。

12.对处理大量数据的外存介质而言,索引顺序存取方法是一种方便的文件组织方法。( )

【答案】×

【解析】索引顺序存取方法插入操作比较麻烦,对于处理大量数据,会有大量的记录进入溢出区,而基本区中又浪费很多空间。

三、读写算法题

13.对于任意的无符号的十进制整数m ,写出将其转换为十六进制整数的算法(转换仅要求能够输出正确的十六进制的整数即可) 。

【答案】算法如下:

//本算法将无符号十进制整数m 转换为十六进制整数

本算法的递归描述如下:

//本算法将无符号十进制整数m 转换为十六进制整数