一、填空题

1. 如下的算法分别是后序线索二叉树求给定结点node 的前驱结点与后继结点的算法,请在算法,其空格处填上正确的语句。设线索二叉树的结点数据结构为(lflag ,lcft ,data ,right ,rflag )中:lflag=0,lcft 指向其左孩子,lflag=1,left 指向其前驱:rflag=0,right 指向其右孩子,rflag=1,right 指向其后继。

Prior (node , x ) { if(node !=null)
If ( (1) ) *x=node->right;else * x-node->left;
}
next (bt , node, x )/*bt是二叉树的树根*/ { (2) ;
if (node->rflag)(3); else {do t=*x;;
while (*x==node ); *x=t; } }

【答案】nodc->rflag==O; *x=ht; *x=nodc->right; prior (t , X )

2. —棵有个结点的满二叉树有_____个度为1的结点、有_____个分支(非终端)结点和_____个叶子,该满二叉树的深度为_____。

【答案】

【解析】满二叉树没有度为1的结点,度为0的结点等于度为2的结点个数+1。 3. —棵深度为k 的平衡二叉树, 其每个非终端结点的平衡因子均为0,则该树共有_____个结点。

【答案】

【解析】每个非终端结点都是0表示该平衡二叉树没有高度落差。也就是说它是一棵满二叉 树。故结点个数为

4. 对n 个记录的表r[l..n]进行简单选择排序,所需进行的关键字间的比较次数为_____。

【答案】n (n-1)/2

【解析】第一次需要n-1次比较,第i 此需要n-i 此比较,所以共需要、n-l+n-2+...+l=n(n-l )

/2。

5. 在下面的程序段中,对X 的赋值语句的时间复杂度为_____(表示为n 的函数)。

【答案】1+(1+2)+(1+2+3)+"•+(l +2+... +n )=n(n +1)(n +2)/6,即

【解析】当i=l时,赋值语句就被执行了一次。当i=2时,赋值语句被执行了1+2次。当i=3时,赋值语句被执行了1+2+3次。可以推出赋值语句总共被执行了1+(1+2)+(1+2+3)+…+(l +2+... +n )=n(n +1)(n +2)/6次。

6. 线性表用数组表示,假定删除表中任一元素的概率相同,则删除一个元素平均需要移动元素的个数是_____。

【答案】(n -1)/2

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

7. 一个有2001个结点的完全二叉树的高度是_____。

【答案】11

【解析】

完全二叉树的高度

8. N 个顶点的连通图用邻接矩阵表示时,该矩阵至少有_____个非零元素。

【答案】2(N-1)

【解析】所谓连通图一定指的是无向图,有向图会称作强连通图。连接N 个顶点,至少需要N-1条边就可 以了。由于无向图的每一条边同时关联了两个顶点。因此用邻接矩阵表示时,该矩阵至少有2(N-1)个非零元素。

9. 对于双向链表,在两个结点之间插入一个新结点需修改的指针共_____个,单链表为_____个。

【答案】4; 2

10.已知一循环队列的存储空间为环队列判满的条件是( )

【答案】

中,其下标值最大的分支结点为_____。

11.设有个结点的完全二叉树顺序存放在向量

【答案】

其中

队头和队尾指针分别为front 和rear , 则此循

【解析】最大的分支结点是最后一个叶子结点的父结点。

12.在哈希函数中,P 值最好取_____。

【答案】小于等于表长的最大素数或不包含小于20的质因子的合数

【解析】在使用除留余数法时,对除数P 的选择很重要。若P 选的不好,容易产生同义词。一般情况下,可以选P 为质数或不包含小于20的质因素的合数。

二、选择题

13.下面关于B 和B+树的叙述中,不正确的是( )

A.B 树和B+树都是平衡的多叉树 B.B 树和B+树都可用于文件的索引结构 C.B 树和B+树都能有效地支持顺序检索 D.B 树和B+树都能有效地支持随机检索 【答案】C

【解析】B 树是一种平衡的多分树,通常我们说m 阶的B 树,它必须满足如下条件:①每个结点至多有m 个子结点;②除根结点和叶结点外,其它每个结点至少有个子结点;③若根结点不是叶子结点,则至少有两个子结点;④所有的叶结点在同一层;⑤有k 个子结点的非根结点恰好包含k-1个关键码。B+树是B 树的一种变形树,它与B 树的差异在于:有k 个子结点的结点必然有k 个关键码;非叶结点仅具有索引作用,跟记录有关的信息均存放在叶结点中。其中B 树适合与随即检索,不适合于顺序检索,所以C 项错误。

14.某计算机存储器按字节编址,采用小端方式存放数据。假定编译器规定int 和short 型长度分别为32位和16位,并且数据按边界对齐存储。某C 语言程序段如下:

若record 变量的首地址为则地址中内容及record.c 的地址分别为( )。 A. B. C. D. 【答案】D 。

【解析】32位整数a 需要占4个字节,16位整数c 需要占2个字节,而字符数据b 占一个字节。a=273, 转换成十六进制是111H , 采用小端方式存放数据,地址0xC008中的内容为11H 。由于数据按边界对齐存储,地址

地址

中存放c 。

中存放a , 地址

中存放b , 地址

中空闲,