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

2017年大连大学教育部先进设计与智能计算重点实验室836数据结构考研冲刺密押题

  摘要

一、填空题

1. 已知如下程序段:

语句1执行的时间复杂度为_____;语句2执行的时间复杂度为_____;语句3执行的时间复杂度为_____;语句4执行的时间复杂度为_____。

【答案】(1)n +1 (2)n

(3)n (n +3)/2 (4)n (n +l )/2

【解析】语s 句1执行到不符合条件情况下,执行了n +1次。当语句1不符合条件了是不会执行语句2的,所以语句2被执行了n 次。语句3每次都要执行到不符合条件,故为2+3+4...... +(n +l )加起来就是n (n +3)/2。语句3不符合条件了是不会执行语句4的。所以语句4被执行了1+2+3...... +n 即n (n +l )/2。

2. 假定查找有序表中每个元素的概率相等,则进行折半查找时的平均查找长度为_____

【答案】37/12

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

平均查找次数为

3. 假定有k 个关键字互为同义词,若用线性探测再哈希法把这k 个关键字存入哈希表中,至少要进行_____次探测。

【答案】

【解析】当该关键字发生冲突时,用线性探测不会遇到别的关键字冲突,这个时候需要探测 的次数最小。总次数为

4. 对于给定的元素,可以构造出的逻辑结构有_____,_____,_____,_____四种。

【答案】集合;线性结构;树形结构;图状结构(网状结构)

5. —个字符串中_____称为该串的子串。

【答案】任意个连续的字符组成的子序列

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

先在二叉排序树T 中查找值为A 的结点,根据查找情况分别进行如下处理:(1)若找不到值为A 的结点,则返回根结点的地址(2)若找到值为A 的结点,则删除以此结点为根的子树,并释放此子树中的所有结点,若值为A 的结点是查找树的根结点,删除后变成空的二叉树,则返否则返回根结点的地址。

【答案】

7. 线性表

【答案】(n -1)/2

【解析】删除第一个元素需要移动n -i 次,以此类推,删除最后一个元素需要移动0次。平均次数为

用数组表示,假定删除表中任一元素的概率相同,则删除一个元素

平均需要移动元素的个数是_____。

8. 已知二叉排序树的左右子树均不为空,则_____上所有结点的值均小于它的根结点值,_____上所有结点的值均大于它的根结点的值。

【答案】左子树;右子树 【解析】二叉排序树

或者是一棵空树,或者是具有下列性质的二叉树:①若它

的左子树不空,则左子树上所有结点的值均小于它的根结点的值;②若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值;③它的左、右子树也分别为二叉排序树。

9. 已知一循环队列的存储空间为其中队头和队尾指针分别为front 和rear , 则此循环队列判满的条件是( )

【答案】

10.以下程序的功能是实现带附加头结点的单链表数据结点逆序连接,请填空完善之。

【答案】(1)(2)

链表未到尾就一直进行

将当前结点作为头结点后的第一元素结点插入

二、算法设计题

11.试编写一算法对二叉树按前序线索化。

【答案】算法如下:

//设置前驱

//对以线索链表为存储结构的二叉树BT 进行前序线索化

//

线

//设置前驱的右线索

//为建立右链做准备

//前驱后移

.

中存放一段英文,写出算法

其多余的字符送

将其按给定的长度n 格式化//左子树前序线索化

//右子树前序线索化

12.已知字符串

成两端对齐的字符串

【答案】算法如下: