数据结构与算法分析-六套期末复习题(含答案) 下载本文

三、(本题8分)

树的遍历方法有先根序遍历和后根序遍历,它们分别对应于把树转变为二叉树后的先序遍历与中序遍历方法。

四、(本题8分) A[1,1,1]的存储位置

=2000+((1-(-1))*(6-0+1)*(3-(-2)+1)+(1-0)*(3-(-2)+1)+(1-(-2)))*5=2465。

五、(本题8分)

六、(本题15分)

本题只要在遍历二叉树的过程序中对叶子结点进行记数即可。 C语言版测试程序见exam2\\10c,具体算当如下:

long LeafCount(BiTree T) // { }

if(T==NULL) else

//叶子结点数为左右子树的叶子结点数之和

return LeafCount(T->lchild)+LeafCount(T->rchild);

return 0;

//空树返回0

计算二叉树中叶子结点数目

else if(T->lchild==NULL&&T->rchild==NULL)

return 1;

//只有一个结点的树返回1

试题三

一、单项选择题(每小题 2 分,共20分)

(1)对一个算法的评价,不包括如下( )方面的内容。

A)健壮性和可读性 B)并行性 C)正确性 D)时空复杂度

(2)在带有头结点的单链表HL中,要向表头插入一个由指针p指向的结点,则执行( )。 A)p->next=HL->next; HL->next=p C)p->next=HL; p=HL

(3)对线性表,在下列哪种情况下应当采用链表表示?( ) A)经常需要随机地存取元素

B)经常需要进行插入和删除操作

C)表中元素需要占据一片连续的存储空间 D)表中元素的个数不变

(4)一个栈的输入序列为1 2 3,则下列序列中不可能是栈的输出序列的是( )。 A)2 3 1

(5)每一趟都能选出一个元素放在其最终位置上,并且不稳定的排序算法是( )。 A)冒泡排序 B)简单选择排序C)希尔排序 D)直接插入排序

(6)采用开放定址法处理散列表的冲突时,其平均查找长度( )。 A)低于链接法处理冲突 B)高于链接法处理冲突 C)与链接法处理冲突相同 D)高于二分查找

(7)若需要利用形参直接访问实参时,应将形参变量说明为( )参数。 A)值

B)函数 C)指针 D)引用

(8)在稀疏矩阵的带行指针向量的链接存储中,每个单链表中的结点都具有相同的( )。 A)行号 B)列号 C)元素值 D)非零元素个数

B)3 2 1

C)3 1 2

D)1 2 3

B)p->next=HL; HL=p D)HL=p; p->next=HL

(9)快速排序在最坏情况下的时间复杂度为( )。 A)O(log2n)

(10)从二叉搜索树中查找一个元素时,其时间复杂度大致为( )。 A)O(n) B)O(1) C)O(log2n) D)O(n2)

B)O(nlog2n)

C)O(n) D)O(n2)

二、(本题8分)

如果在1000000个记录中找出两个最小的记录,你认为采用什么样的排序方法所需的关键字比较次数最少?最多比较多少次?

三、(本题8分)

假设把n个元素的序列(a1,a2,…an)满足条件akaj(i

四、(每小题4分,共8分)

设内存有大小为6个记录的缓冲区供内排序使用,文件的关键字序列为

{29,50,70,33,38,60,28,31,43,36,25,9,80,100,57,18,65,2,78,30,14,20,17,99),试列出: (1)用内排序求出初始归并段; (2)用置换一选择排序求初始归并段。

五、(本题9分)

已知关键字序列{23,13,5,28,14,25},试构造二叉排序树。

六、(本题15分)

编写一个算法求二又树的深度。

【答案】==================================

一、单项选择题(每小题 2 分,共20分)

(1)B (2)A (3)B (4)C (6)B (7)D (8)A (9)D (10)C

二、(本题8分)

采用树形选择排序方法所需的关键字比较次数最少,最多比较次数=999999+?(5)B

log21000000?=1000019次。

三、(本题8分)

不对,例如序列{3、3、4、2、l}的“逆序元素”个数是2,2和1是“逆序元素”;但是将第二个3和2交换后,成为{3、2、4、3、l},此时“逆序元素”个数是3,2、3和1是“逆序元素”。然而交换后一定减少的是“逆序对”的个数,例如上例中{3、3、4、2、l}的逆序对的个数是 7,交换第二个 3和2后,{3、2、4、3、1}的逆序对的个数是6。

四、(每小题4分,共8分) (1)用内排序求出初始归并段为: 归并段1:29,33,38,50,60,70: 归并段2:9,25,28,31,36,43 归并段3:2,18,57,65,80,100:

归并段4:14,17,20,30,78,99.

(2)用置换一选择排序求初始归并段为: 归并段1:29,33,38,50,60,70,80,100 归并段2:9,18,25,28,31,36,57,65,78,99; 归并段3:2,14,17,20,30.

五、(本题9分)

构造二叉排序树的过程如下图所示。