数据结构期末考试题

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、判断题:(共10分,每题1分)

1. 顺序表和一维数组一样,都可以按下标随机(或直接)访问。()

2. 数据的逻辑结构是指各数据元素之间的逻辑关系,是用户根据应用需要建立的。()

3. 只有用面向对象的计算机语言才能描述数据结构算法。()

4. 在对双向循环链表做删除一个结点操作时,应先将被删除结点的前驱结点和后继结点链

接好再执行删除结点操作。()

5. 递归的算法简单、易懂、容易编写,而且执行效率也高。()

6. 在AOE网络中一定只有一条关键路径。()

7. 二叉树是一棵无序树。()

8. 在任何情况下,快速排序需要进行关键码比较的次数都是O(nlog2n)。()

9. 图的深度优先搜索是一种典型的回溯搜索的例子,可以通过递归算法求解。()

10. 当从一个最小堆中删除一个元素时,需要把堆尾元素填补到堆顶位置,然后再按条件把

它逐层向下调整,直到调整到合适位置为止。()

二、填空题(20分,每题2分)

1.假定一棵二叉树的结点个数为32,则它的最小深度为______。

2.在一棵二叉树中,度为2的结点有5个,度为1的结点有6个,那么叶子结点有______

个。

3.一棵深度为5的满二叉树的结点总数为______个。

4.假定一棵树的广义表表示为A(B(C, D(E, F,G), H(I, J))),则结点H的双亲结点为

______。

5.对于一个具有n个顶点的图,若采用邻接矩阵表示,则矩阵大小为______。

6.若要对某二叉排序树进行遍历,保证输出元素的值序列按增序排列,应对该二叉排

序树采用____________遍历法。

7.元素关键字转换为该元素存储位置的函数f称为____________。

8.每次从无序表中取出一个元素,把它插入到有序表中的适当位置,此种排序方法叫

做____________排序。

9.假定一组数据的关键字为{46,79,56,38,40,84},则利用堆排序方法建立的初始大

顶堆为__________________。

10.对20个记录进行归并排序时,共需要进行______趟归并。

三、选择题(共20分,每题2分)

1.树中所有结点的度数之和等于结点总数加______。

A. 0

B. 1

C. -1

D. 2

2.在一棵树中,每个结点最多有______个直接前驱结点。

A. 0

B. 1

C. 2

D. 任意多个

3.在一棵二叉树的二叉链表中,空指针域数等于非空指针域数加______。

A. 2

B. 1

C. 0

D. -1

4.顶点个数为n的无向图最多有______条边。

A. n-1

B. n(n-1)/2

C. n(n+1)/2

D. n(n-1)

5.n个顶点的连通图至少有______条边。

A. n-1

B. n

C. n+1

D. 0

6.在一个无向图中,所有顶点的度数之和等于所有边数的______倍。

A. 3

B. 2

C. 1

D. 1/2

7.对于顺序存储的有序表(5, 12, 20, 26, 37, 42, 46, 50, 64),为查找元素26,若采

用顺序查找,需要比较______次才能查找成功。

A. 3

B. 4

C. 5

D. 6

8.设哈希表长为14,哈希函数f(k)=k%11,已知表中已有4个元素,关键字分别为15,

38,61,84,存储位置分别为4,5,6,7,其它存储位置为空,如用二次探测再散列处理冲突,关键字为49的存储位置是______。

A. 8

B. 3

C. 5

D. 9

9.在对n个元素进行简单选择排序的过程中,需要进行______趟选择和交换。

A. n/2

B. n-1

C. n

D. n+1

10.在对n个元素进行快速排序的过程中,第一趟排序最多需要交换______对元素。

A. n/2

B. n-1

C. n

D. n+1

四、应用题(共30分,每题6分)

1.已知一棵度为k的树中有n1个度为1的结点,n2个度为2的结点,…,n k个度为k

的结点,问该树有多少个叶子结点?(6分)

2.对于下面两个图,求出:

(1)无向图中每个顶点的度,有向图中每个顶点的入度,出度和度。(2)是否是连通图/强连通图,如果不是,画出连通分量/强连通分量。(6分)

3.分别画出在线性表(a, b, c, d, e, f, g)中进行折半查找,以查关键字等于e、f

和g的过程。(6分)

4.已知一组元素的关键字{46,74,16,53,14,26,40,38,86,65,27,34},利用直接插入

排序法,写出每次向前面的有序表插入一个元素后的排列结果。(6分)

5、将下图转换为二叉树,对转换后的二叉树进行先序、中序、后序遍历序列。(6分)

五、程序题(20分)

1.将下面算法填完整。(10分,每空2分)

int Search_Bin(SSTable ST, KeyType key){

//在有序表ST中折半查找其关键字等于key的数据元素,若找到,则返回该元素//在表中的位置,否则返回0

low=1;high=ST.length;

while(low<=high){

mid=____________;

if(EQ(key, ST.elem[mid].key)) return ____________;

else if(LT(key, ST.elem[mid].key)) high=____________;

else low=____________;

}

return ____________;

}

2.将下面算法填完整。(10分,每空2分)

void InsertSort(SqList &L){

//对顺序表L作直接插入排序

for(i=2;i<=L.length;++i)

if(LT(L.r[i].key, L.r[i-1].key)){

L.r[0]= ____________;

L.r[i]= ____________;

for(j=____________;LT(L.r[0].key, L.r[j].key);--j)

L.r[j+1]= ____________;

L.r[j+1]= ____________;

}

}

相关文档
最新文档