当前位置:文档之家› 北京交通大学数据结构与算法期末测验考试参考答案

北京交通大学数据结构与算法期末测验考试参考答案

}LNode, *LinkList;
Status CreatList_L(LinkList &L, int n){
//正序输入n个元素的值,建立带表头结点的单链线性表L
L=(LinkList) malloc(sizeof(LNode));
if(!L) return ERROR;
L->next=NULL;
A.5 B.6 C.7 D.8
三、判断题(10分,每小题1分)
1.顺序存储方式的优点是存储密度大,且插入、删除运算效率高。()
2.数组不适合作任何二叉树的存储结构。()
3.广义表的取表尾运算,其结果通常是个表,但有时也可是个原子。()
4.在含有n个结点的树中,边数只能是n-1条。()
5.所谓一个排序算法是否稳定,是指该算法在各种情况下的效率是否相差不大。()
6.简单选择排序在最好情况下的时间复杂度为O(n)。()
7.在二叉排序树中插入一个新结点,总是插入到叶结点下面。()
8.采用线性探测处理冲突,当从哈希表中删除一个记录时,不应将该记录所在位置置空,因为这会影响以后的查找。()
9.有n个数存放在一维数组A[1..n]中,在进行顺序查找时,这n个数的排列有序或无序,其平均查找长度不同。()
A.i(i-1)/2+j-1B.i(i-1)/2+j
C.i(i+1)/2+j-1D.i(i+1)/2+j
7.由一个长度为11的有序表,按二分查找法对该表进行查找,在表内各元素等概率情况下,查找成功的平均查找长度是( )。
A.29/11 B. 31/11C. 33/11 D.35/11
8.AVL树是一种平衡的二叉排序树,树中任一结点的()。
(A) s->next=p+1 ; p->next=s;
(B) (*p).next=s; (*s).next=(*p).next;
(C) s->next=p->next ; p->next=s->next;
(D) s->next=p->next ; p->next=s;
4.在有向图的邻接表存储结构中,顶点v在链表中出现的次数是()。
(1)冒泡排序一趟扫描的结果
(2)以第一个元素为分界点的快速排序一趟扫描的结果
(3)堆排序所建的初始堆和第一趟排序结果。
五、程序填空题(10分,每空1分)
1.下列算法是建立单链表的算法,请填写适当的语句,完成该功能。
typedef struct Lnode{
ElemType data;
struct Lnode *next;
5.对有14个元素的有序表A[1..14]进行折半查找,当比较到A[4]时算法结束。被比较元素除A[4]外,还有。
6. 在AOV网中,顶点表示,边表示。
7. 有向图G可进行拓扑排序的判别条件是。
8. 若串S1=‘ABCDEFGHIJK’,S2=‘451223’,S3=‘####’,则执行Substring(S1,Strlength(S3),Index(S2,‘12’,1))的结果是。
北京交通大学考试试题(A卷)
课程名称:数据结构与算法2011-2012学年第一学期出题教师:张勇
(请考生注意:(1)本试卷共有六道大题,(2)答案一律写在答题纸上,(3)试卷不得带出考场)
题号




五பைடு நூலகம்

总分
得分
阅卷人
一、填空题(每空2分,共20分)
1.在顺序表中访问任意一个元素的时间复杂度均为,因此顺序表也称为的数据结构。
二、选择题(每空2分,共20分)
1.在下列存储形式中,哪一个不是树的存储形式?()
A.双亲表示法B.孩子链表表示法
C.孩子兄弟表示法D.顺序存储表示法
2.查找n个元素的有序表时,最有效的查找方法是()。
A.顺序查找B.分块查找
C.折半查找D.二叉查找
3.将所示的s所指结点加到p所指结点之后,其语句应为( )。
2.三维数组a[4][3][2](下标从0开始),假设a[0][0][0]的地址为50,数据以行序优先方式存储,每个元素的长度为2字节,则a[2][1][1]的地址是。
3. 直接插入排序用监视哨的作用是。
4.已知广义表Ls=(a, (b, c), (d, e)),运用head和tail函数取出Ls中的原子d的运算是。
3.(6分)输入一个正整数序列(53,17,12,66,58,70,87,25,56,60),试完成下列各题:
(1)构造一棵二叉排序树,计算查找成功的平均查找长度;
(2)依此二叉排序树,如何得到一个从大到小的有序序列;
(3)画出在此二叉排序树中,删除“66”后的树结构.
4. (6分)将序列{25, 34, 12, 7, 15, 47, 65, 79,47+,16}中的关键字按升序重新排列,请写出
A.顶点v的度B.顶点v的出度
C.顶点v的入度D.依附于顶点v的边数
5.算法的时间复杂度为O(nlog2n)、空间复杂度为O(1)的排序算法是( )。
A. 堆排序B. 快速排序C. 归并排序D.直接选择
6.设矩阵A是一个对称矩阵,为了节省存储,将其下三角部分(如右图所示)按行序存放在一维数组B[ 1, n(n-1)/2 ]中,对下三角部分中任一元素ai,j(i≤j),在一维数组B中下标k的值是():
10.广义表中原子个数即为广义表的长度。( )
四、应用题(24分)
1.(6分)将下列由三棵树组成的森林转换为二叉树。
2.(6分)给定下列图,完成以下问题
(1)画出该图的邻接矩阵和邻接表
(2)根据所画的邻接表,从顶点B出发,画出图的深度优先搜索树
(3)根据普里姆(Prim)算法,求它的最小生成树(不必写出全部过程,在生成树中标出边生成的次序即可)
A. 左、右子树的高度均相同
B. 左、右子树高度差的绝对值不超过1
C. 左子树的高度均大于右子树的高度
D. 左子树的高度均小于右子树的高度
9.下列四种排序方法中,不稳定的方法是()。
A.直接插入排序B.冒泡排序
C.归并排序D.堆排序
10.设树的度为4,其中度为1,2,3,4的结点个数分别为4, 2, ,1, 1,则T中的叶子数为()。
p=( 1 );
for(i=0;i<n;i++){
s=(LinkList) malloc(sizeof(LNode));
if(!s) return ERROR;
scanf(&s->data);
相关主题