25 设有2000个无序的元素,希望用最快的速度排选出其中前10个最大的元素,最好选用( )排序方法
A,堆排序 B快速排序 C,冒泡排序 D,基数排序
二 .填空题(每空2分,共14分)
1 . 设带头结点的单链表Head为空的判断条件是( )
3 (6分)如图3所示的二叉树
[1]该二叉树的深度是多少, 结点B,E的平衡因子分别是多少.
[2]画出该二叉树的先序线索化树.
图 3 二叉树 图 4 AOE 图
4 (7分) (04级应数同学必做,05级同学可以不答)
题号 一 二 三 四 五 总分 得分 评阅人
一 . 单项选择题(每小题2分,共50分)
1.数据元素是数据的基本单位,其中( )数据项
A只能包含一个 B不包含 C可以包含多个 D可以包含也可以不包含
2、下面( )的时间复杂性最好即执行时间最短
A、d,c,b,a B、a,c,d,b C、a,b,c,d D c,b,d,a
9在具有n(n>l)个结点的完全二叉树中,结点i(2i>n)的左孩子结点是( )
A 2i B 2i+1 C 不存在 D 是2i-1
C、p=p->next->next D、p->next=p->data
6、设单链表中指针p指向结点ai ,指针f 指向将要插入的新结点x ,向在链表最后一个结点an之后插入时,只要先修改( )后再让p->next=f 即可.
A f->next=p B、f->next=p->next
2.设计一个算法分别统计出二叉树的叶子结点,度为
??
1
共5页 第 页
1、书是人类进步的阶梯——高尔基
A、O(n) B、O(logn) C、O(nlogn) D、O(n2)
3.相对于顺序存储而言,链式存储的优点是( )
A随机存取 B节约空间 C增、删操作方便 D节点间关系简单
4、在一个长度为n的顺序存储的线性表中,若在任何一个位置插入一个元素的概率相等,在插入一个元素时的平均需要移动( )个元素.
5 有一个10×10的下三角矩阵a ,若采用按行优先进行顺序存储在一个一维数组Sa[N]中,则N的值是( )
6.若在一个表中共有625个元素,且查找每个元素的概率相同,那么在采用分块查找时,每块的长度为( ),平均查找长度最小,此时的平均查找长度是( )
三 解答题(共30分)(以下有6题,除了特别申明外每题必答)
对于待排序序列{12,11,13,49,26,14,8,7}
[1]以快速排序算法来将该序列进行排序,写出各趟排序后的结果
[2]以该序列为输入序列来建立平衡二叉排序树,并求出其搜索成功的平均查找长度ASL;
5 (7分)(05级同学必做,04级应数同学可不答) 有序表按关键码排列如下:{7,14,18,21,23,29,31,35,38,42,46,49,52}
23 下面几种排序中,平均查找长度最小的是( )
A、插入排序 B,选择排序 C,快速排序 D,归并排序
24 一棵二叉树的先序遍历序列为abdfce 中序遍历序列为dfbace则后序遍历的序列为( )
A, fdbeca B, abcdef C, dfceab D, ebfabd
[1]写出在表中用折半查找关键码为14的数据元素的过程,
[2]并且画出有序表折半查找的判断树,并且求出等概率查找成功的平均查找长度ASL
6 (6分)如图4所示AOE是某个工程的计划图,各个顶点表示事件,边表示活动,边上的权值表示各活动所需要的时间
[1]分别计算事件v4和活动a5的最早发生时间和最晚发生时间.
1、书是人类进步的阶梯——高尔基
华南农业大学期末考试试卷( A 卷)
2006 学年第1 学期 考试科目:数据结构
考试类型:(闭卷) 考试时间: 120 分钟
学号 姓名 年级专业
2.用数组a[1..n]表示循环队列Sq, 则当循环队列Sq是满时,队列中共有( )元素
3.设有150个记录要存储到散列表中, 要求利用线性探测再哈希法解决冲突, 同时要求找到所需记录的平均比较次数不超过2次,则散列表的长度至少需要设计为( )
4若m叉树中A有3个兄弟,结点B是A的双亲,则节点B的度是( )
16 设广义表L=(a,(((f,g),e),(c,d)))则表达式GetTail(GetHead(GetTail(L)))的值为( )
A、 (d) B、(e) C、g D、e
17 在有向图的邻接表存储结构中,顶点v在表结点中出现的次数等于( )
C、 p->next=f->next D、f=NULL
7 允许对队列进行的操作有( )
A、删除队首元素 B、取出最近进队的元素
C、在最早入队元素之前插入元素 D、排序
8 若让元素d,a,c,b依次进栈,则出栈次序不可能出现以下哪种情况( )
A 线性表 B 广义表 C双向链表 D 稀疏矩阵
15.对于二维数组A[4][4],数组的元素起始地址为loc(A[0][0])=1000,元素长度为2,则loc(A[2][2])为( )
A 1000 B.1010 C 1008 D 1020
[2]求该AOE图的关键路径.
四,(共6分)算法设计 (下面两题可以任意选择一题作为设计)
1.已知带头结点的单链线性表La和Lb中的元素都是按值非递减排列,现归并La和Lb得到新单链线性表Lc,使得Lc中的元素也是按值非递减排列,用La的头结点作为Lc的头结点,归并完了释放Lb的头结点
A. 23 B 24 C 25 D 26
20.有一个有序表为{1,3,9,12,32,41,45,62,75,77,82,95,100},当二分查找值为 82的结点时,( )次比较后查找成功
A 1 B 2 C 4 D 8
A、1+2b+3c B、a+2b+3c C、2b-3c D、1+b+2c
13.某二叉树的先序遍历序列和后序遍历序列正好相反,则该二叉树一定是( )
A.空或只有一个结点 B. 高度等于其结点数
C.任一结点无左孩子 D .任一结点无右孩子
14.一个三元组表用于表示一个( )
A、顶点v的度 B、顶点v的出度 C、顶点v的入度 D、依附于顶点v的边数
18 利用4,5,6,7,8作为叶子结点的权值,生成一棵赫夫曼树,该树的带权路径长度为( )
A、67 B、68 C、69 D、70
19.表长为25的哈希表,用除留余数法,即按公式H(key)=keyMODp建立哈希函数,则p应取( )为宜
21.顺序查找法适合于存储结构为( )的线性表
A 散列存储 B 顺序存储或链接存储 C 压缩存储 D 索引存储
22 在一个具有n个顶点的有向图中,若所有顶点的出度之和是s ,则所有顶点的度数之和是( )
A、s B,s-1 C,s+1 D,2s
10 深度为5的满二叉树共有( )个分支结点
A、32 B、15 C 30 D、31
11 任何一个有向图的拓扑序列( )
A可能不存在
B 只有一个 C 一定有多个
D 有一个或者多个
12 若树T有a个度为1的结点,b个度为2的结点,c个度为3的结点,则该树有( )个叶子结点
A、 (n+1)/2 B、(n-1)/2 C、 n/2 D、 (n-2)/2
5、设单链表中指针p 指向结点ai ,若要删除ai 之后的结点(若存在),需要修改指针的操作为( )
A、 p->next=p->next->next B、p=p->next
1 已经带权无向图如图1所示,利用克鲁斯科尔(Kruskal)算法,画出该无向图的最小生成树的每一步(5分)
图1 带权无向图 图 2 有向图
2 (6分) 如图2所示的有向图,请分别给出该图的邻接矩阵表示,逆邻接表表示和十字链表表示