您好,欢迎来到九壹网。
搜索
您的当前位置:首页2009-2010A

2009-2010A

来源:九壹网
2009~2010学年秋季学期期末考试试题(A)

试题 班级 姓名 学号 第 1 页

题目 分数 评卷人 一 二 三 四 五 六 七 八 总分数

一、选择题(在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在题号后面的括号内。每题2分,共20分)

1. ( )下面程序段的时间复杂度为 1、 void binary(int n){ 2、 while(n>0){

3、 System.out.print(n+”,”); 4、 n/=2; 5、 } } A.O(1) B.O(log2n) C.O(n) D.O(n2)

2. ( )算法必须具备五个特性:输入,输出以及

A.可行性、可移植性、可扩充性 B.可行性、确定性、有穷性 C.确定性、有穷性、稳定性 D.易读性、稳定性、安全性 3. ( )以下与数据的存储结构无关的术语是

A.循环队列 B.循环链表 C.链式栈 D.栈 4. ( )下列说法中正确的是 A.数据元素是数据的最小单位。

B.顺序存储方式的优点是存储密度大,且插入、删除运算效率高。 C.数据的存储结构是指数据在计算机内的实际存储形式。 D.链表中的头结点仅起到标识的作用。

5. ( )在需要经常查找结点的前驱与后继的情况下,使用下列哪种结构比较合适。

A.单链表 B.双链表 C.顺序表 D.循环链表.

6. ( )按二叉树的定义,具有三个结点的二叉树共有( )种形态。 A.3 B.4 C.5 D.6

7. ( )高度为5的完全二叉树中含有的结点数至少为( ) A.16 B.17 C.31 D.32

8. ( )对线性表进行折半查找时,要求线性表必须

A.以顺序方式存储 B.以顺序方式存储,且数据元素有序 C.以链接方式存储 D.以链接方式存储,且数据元素有序

9. ( )设栈的输入序列是1,2,3,4,则不可能出现的出栈序列是 A.1,2,4,3 B.2,1,3,4 C.1,4,3,2 D.4,3,1,2

1

数据结构(A) 10. ( )已知变量p和q分别引用某单链表中第一个结点和最后一个结点。假设变量s引用另一个单链表中某个结点,则在s所引用的结点之后插入上述链表应执行的语句为

A.q.next=s.next;s.next=p; B.s.next=p;q.next=s.next; C.p.next=s.next;s.next=q; D.s.next=q;p.next=s.next;

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

1.在一个长度为1000的顺序表中删除第50个元素(序号为49)时,需移动__________个元素。

2.带头结点的单链表,头指针为head,则判定该表为空表的条件是____________________________________

3. 在有序表(12,24,36,48,60,72,84)中折半查找关键字72时所需进行的关键字比较次数为 。

4.已知一个顺序循环队列最多能容纳60个元素,当front=47,rear=12时,该队列有_____________个元素。

5.若序列中关键字相同的记录在排序前后的相对次序不变,则称该排序算法是______________的。

6.对于下面的带权图,若从顶点v0出发,则按照普里姆(Prim)算法生成的最小生

成树中,得到第二条边为_________________。 7.顺序查找n个元素的顺序表,若查找成功,则比较关键字的次数最多为__ __次。

8.队列的队尾位置通常是随着______________操作而变化的。

9.对n个元素的序列进行冒泡排序时,最少的比较次数为_______________。 10. 归并排序的空间复杂度为_____________。 三、简答题(共36分)

1.(7分)已知一棵二叉树的中序序列是IGJEKBFCDA,先序序列是EIJGBKACFD, (1)请画出这棵二叉树

(2)请画出该二叉树的中序线索化树。

2

试题 班级 姓名 学号 第 2 页 2. (6分)输入一组关键字{10,5,7,14,3,1,18,12,15,16} (1)请画出由此生成的二叉排序树。

(2)如果对每一关键字的查找概率相等,求其平均查找长度ASL。

3. (7分)已知含6个顶点(v0,v1,v2,v3,v4,v5)的无向图的邻接矩阵如图所示, (1) 请画出该无向图

(2) 请写出从顶点V0出发,进行深度优先遍历,所

得到的遍历序列。

(3) 请写出从顶点V0出发,进行广度优先遍历,所

得到的遍历序列。

数据结构(A) 3

4. (6分)采用堆排序法对序列{48,37,63,96,22,31,50,55,11}进行升序排序,写出构建的初始(大根)堆及前两趟调整堆之后的序列状态。 初始堆:

第1趟:

第2趟:

5. (10分)请阅读如下算法,回答以下问题 (1)请写出输出结果。

(2)请解释下划线处所示方法的功能。

import dataStructure.linearList.SeqStack;

public class Test {

public static void main(String args[]){ int a[]={78,63,45,30,91,34}; SeqStack S=new SeqStack(a.length); ① for(int i=0;iS.push(new Integer(a[i])); ② while(!S.isEmpty()) ③

System.out.print(S.pop().toString()+\" \"); ④ } }

输出结果:___________________________________ ①___________________________________________ ②___________________________________________ ③___________________________________________ ④___________________________________________ 四、算法填空题(6分)

顺序表类中包含以下属性,remove方法删除index位置的对象,若操作成功,则返回被删除对象,否则返回null,请在程序的空白处填入合适内容。 public class SeqList implements LList { private Object[] table; private int n; ……

public E remove(int index){

if(this.n!=0&&index>=0&&indexE old=(E)this.table[index];

for(int j=index;jthis.table[this.n-1]=null;

4

试题 班级 姓名 学号 第 3 页 }

}

② //表长减一

③ //若操作成功,返回删除对象 }

return null;

五、算法设计题(每题6分,共18分)

1.不带头结点的单链表声明如下,方法略。

public class SinglyLinkedList implements LList { protected Node head; }

在SinglyLinkedList类中增加下列构造方法 public boolean replace(Object obj, E element)

其功能为将元素值为obj的结点值替换为element,若替换成功返回true,否则返回false。

5

数据结构(A) 2.二叉树类声明如下,方法略。

public class BinaryTree {

protected BinaryNode root; }

请在该类中增加方法countLeaf,计算二叉树叶子结点的数量。

3. 请编写算法,对整型数组t进行直接插入排序。

6

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- 91gzw.com 版权所有 湘ICP备2023023988号-2

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务