2017年吉林省培养单位长春光学精密机械与物理研究所866计算机原理之数据结构考研冲刺密押题
● 摘要
一、填空题
1. 设m 、n 均为自然数,m 可表示为一些不超过n 的自然数之和,f (m , n )为这种表示方式的 数目。例f (5, 3)=5,有5种表示方式:3+2, 3+1+1,2+2+1,2+1+1+1, 1+1+1+1+1。
①以下是该函数的程序段,请将未完成的部分填入,使之完整。
②执行程序,f (6,4)=_____。 【答案】①1; 1; f (m ,n -1); n ②9
2. 如果按关键码值递増的顺序依次将关键码值插入到二叉排序树中,则对这样的二叉排序树检索时,平均比较次数为_____。
【答案】
【解析】如果关键码是排好序的,构建二叉排序树就会形成一个单支树,它的查找效率和顺 序查找效率一样为
3. 阅读下列程序说明和裎序,填充程序中的_____。
【程序说明】本程序完成将二叉树中左、右孩子交换的操作。交换的结果如下所示(编科略)本程序采用非递归的方法,设立一个堆栈交换左、右子树的算法为:
(1)把根结点放入堆栈。
(2)当堆栈不空时,取出栈顶元素,交换它的左、右子树,并把它的左、右子树分别入栈。
第 2 页,共 62 页
存放还没有转换过的结点,它的栈顶指针为。
(3)重复(2)直到堆栈为空时为止。
(1)
{(2)
If ( (3) )
} }}
【答案】
【解析】本题主要使用堆栈完成了二叉树左右子树交换的操作。首先根结点进栈,然后判断栈足否为空,如果不为空,则取栈顶元素,交换取出节点的左右指针。并将左右指针分别进桟,重复这一操作。完成二叉树左右孩子的交换。
4. 高度为h 的堆中,最多有_____元素,最少有_____个元素。
【答案】
当最后一层只有
【解析】当这个堆构成的是满二叉树时,元素的个数最多,
元素个数为 一个元素时,此时堆的元素个数最少,元素个数为
5. 设二维数组A 的行和列的下标范围分别为和序存储,第一个元素的存储起始位置为b ,则存储位置为
【答案】
当其值为
每个元素占2个单元,按行优先顺处的元素为_____。
【解析】令这个元素的行标为i ,列标为j 。则它的存储位置是时,则i=2,j=3。
6. 阅读下列程序,指出其功能,并写出空格处应填上的语句。
第 3 页,共 62 页
【答案】
【解析】本题是在哈希表ht[]中插入值为的元素,如该元素已在哈希表中,报告出错。 7. 设T 是一棵结点值为整数的二叉排序树,A 是一个任意给定的整数。free_tree在下面的算法中,(T )在对二叉排序树丁进行后序遍历时释放二又排序树T 的所有结点;
首
先在二叉排序树T 中查找值为A 的结点,根据查找情况分别进行如下处理:(1)若找不到值为A 的结点,则返回根结点的地址(2)若找到值为A 的结点,则删除以此结点为根的子树,并释放此子树中的所有结点,若值为A 的结点是查找树的根结点,删除后变成空的二叉树,则返否则返回根结点的地址。
【答案】
8. 一个有2001个结点的完全二叉树的高度是_____。
【答案】11
【解析】完全二叉树的高度
9. 对n 个记录的表r[l..n]进行简单选择排序,所需进行的关键字间的比较次数为_____。
【答案】n (n-1)/2
【解析】第一次需要n-1次比较,第i 此需要n-i 此比较,所以共需要、n-l+n-2+...+l=n(n-l )/2。
10.已知二叉排序树的左右子树均不为空,则_____上所有结点的值均小于它的根结点值,_____上所有结点的值均大于它的根结点的值。
【答案】左子树;右子树 【解析】二叉排序树
或者是一棵空树,或者是具有下列性质的二叉树:①若它
的左子树不空,则左子树上所有结点的值均小于它的根结点的值;②若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值;③它的左、右子树也分别为二叉排序树。
11.在下面的程序段中,对X 的赋值语句的时间复杂度为_____(表示为n 的函数)。
第 4 页,共 62 页