全国10月数据结构导论试题及答案由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“数据结构导论试题”。
全国2012年10月高等教育自学考试
数据结构导论试题及答案
课程代码:02142 请考生按规定用笔将所有试题的答案涂、写在答题纸上。
选择题部分
注意事项:
1.答题前,考生务必将自己的考试课程名称、姓名、准考证号用黑色字迹的签字笔或钢笔填写在答题纸规定的位置上。
2.每小题选出答案后,用2B铅笔把答题纸上对应题目的答案标号涂黑。如需改动,用橡皮擦干净后,再选涂其他答案标号。不能答在试题卷上。
一、单项选择题(本大题共15小题,每小题2分,共30分)在每小题列出的四个备选项中只有一个是符合题目要求的。错选、多选或未选均无分。1.下面几种算法时间复杂度阶数中,值最大的是
D A.O(nlog2n)C.O(n)
B.O(n2)D.O(2n)2.即使输入非法数据,算法也能适当地做出反应或进行处理,不会产生预料不到的运行结果,这种算法好坏的评价因素称为 C A.正确性
C.健壮性
B.易读性
D.时空性
3.设顺序表的长度为100,则在第40个元素之后插入一个元素所需移动元素的个数为 B A.40 C.61
B.60 D.100 4.设带头结点的单循环链表的头指针为head,则判断该链表是否为空的条件是 A A.head->next==head C.head!=NULL
B.head->next==NULL D.head==NULL 5.在链栈的运算中,不需要判断栈是否为空的是B ...A.出栈
C.取栈顶元素
B.进栈
D.求链栈的元素个数
6.一个队列的输入序列是A,B,C,D,则该队列的输出序列是A A.A,B,C,D C.D,C,B,A
B.B,C,D,A D.C,D,B,A 7.以行序为主序的二维数组a[3][5]中,第一个元素a[0][0]的存储地址是100,每个元素占2个存储单元,则a[1][2]的存储地址是C A.100 C.114
B.108 D.116 8.对任何一棵二叉树T,若叶结点数为5个,则度为2的结点个数为A A.4 C.6
9.m个叶结点的哈夫曼树中,其结点总数为D A.m C.2m
B.2m+1 D.2m-1 B.5 D.无法确定
10.二叉树的中序遍历序列中,结点P排在结点Q之前的条件是A A.在二叉树中P在Q的左边
C.在二叉树中P是Q的祖先
11.有10个顶点的无向完全图的边数是B A.11 C.55
B.45 D.90
B.在二叉树中P在Q的右边
D.在二叉树中P是Q的子孙
12.在带权有向图中求两个结点之间的最短路径可以采用的算法是A A.迪杰斯特拉(Dijkstra)算法
C.普里姆(Prim)算法
B.克鲁斯卡尔(Kruskal)算法 D.深度优先搜索(DFS)算法
13.二分查找(Binary Search)算法的时间复杂度是D A.O(n2)
C.O(n)
B.O(nlog2n)
D.O(log2n)
14.在一棵初始时为空的二叉树中,依次插入键值序列50,72,43,85,75,20,38,45,65,60,构造对应的二叉排序树以后,查找元素60要进行的比较次数是C A.2 C.4
15.快速排序属于B A.插入排序
C.选择排序
B.交换排序
D.归并排序 B.3 D.5
非选择题部分
注意事项:
用黑色字迹的签字笔或钢笔将答案写在答题纸上,不能答在试题卷上。
二、填空题(本大题共13小题,每小题2分,共26分)
16.下面算法程序段的时间复杂度为_ for(i=1;i
___。
17.所有存储结点存放在一个连续的存储区里,利用结点在存储器中的相对位置来表示数据元素之间的逻辑关系。这种存储方式是___顺序存储方式___。
18.单链表中指针p指向结点A,若要删除A之后的结点(存在且不释放存储空间),则需要修改指针的操作为p->next=__ ___。
19.在带有头结点的单链表head中,首结点的指针为_head->next___。20.在栈结构中,允许插入和删除的一端称为__栈顶___。
21.C程序中,将对称矩阵A[n][n]的下三角元素压缩存储到n(n+1)/2个元素的一维数组M中,设a[i][j](i≥j)存放在数组M[k]中,则k的值(用i,j表示)为__ 22.具有64个结点的完全二叉树的深度为___ 7__。
23.某二叉树的先序遍历序列为AJKLMNO,中序遍历序列为JLKANMO,则根结点A的右子树中的结点个数为_3___。01124.三个顶点v1,v2,v3的图的邻接矩阵为101,则该图中顶点v2的出度为__2__。
000__。
25.除第一个顶点和最后一个顶点相同外,其余顶点不重复的回路,称为__简单回路或简单环____。
26.在顺序查找、二分查找、散列查找和索引顺序查找四种查找方法中,平均查找长度与元素个数没有关系的查找方法是_散列查找____。
27.堆排序算法的时间复杂度为__
____。
28.如果要将序列{60,18,28,69,99,75,78}建成堆,则只需把60与__ 18____相互交换。
三、应用题(本大题共5小题,每小题6分,共30分)29.如题29图所示,在栈的输入端依次输入元素A,B,C,试写出在栈的输出端可以得到的所有输出序列,并给出每个序列的操作过程(用push(A)表示A进栈,pop(A)表示A出栈)。
题29图
答:
30.将题30图所示的一棵树转换为对应的二叉树。
题30图
答:
31.已知含五个顶点A,B,C,D,E的连通带权图的邻接矩阵如题31图所示,试画出它所表示的连通带权图及该连通带权图的最小生成树。
题31图
答:
32.题32图所示二叉排序树的各结点的值为1~10中的数,试标出各结点的数值。
题32图
33.设散列函数H(key)=key mod 11(mod表示求余运算),给出键值序列为66,13,41,15,44,6,68,17,26,31,39,46,用链地址法解决冲突,试画出相应的散列表,并计算在等概率情况下查找成功时的平均查找长度。
四、算法设计题(本大题共2小题,每小题7分,共14分)34.带头结点的单链表的结点结构如下:
typedef struct node { int data;struct node *next;}Node,*LinkList;试编写单链表的删除运算算法void DeleteLinklist(LinkList head,int i)
35.写出直接选择排序算法。