西华大学2008-2009第二学期数据结构期末试题A

  • 格式:pdf
  • 大小:152.61 KB
  • 文档页数:3

西华大学课程考试试题卷(A 卷)试卷编号:(2008至2009学年第2学期)课程名称:数据结构考试时间:110分钟课程代码:8401801试卷总分:100分考试形式:闭卷学生自带普通计算器:否一、单项选择题(本大题共20个小题,每小题2分,共40分)1.如果在数据结构中每个数据元素只可能有一个直接前驱,但可有多个直接后继,则该结构是(c )A.栈 B.队列 C.树 D.图2.在数据结构中,从逻辑上可以把数据结构分成(b )。

A.动态结构和静态结构B.线性结构和非线性结构C.紧凑结构和非紧凑结构D.内部结构和外部结构3.算法分析的两个主要方面是(a )。

A.空间复杂性和时间复杂性 B.正确性和简明性C.可读性和文档性 D.数据复杂性和程序复杂性4.在以下的叙述中,正确的是(c )。

A.线性表的顺序存储结构优于链表存储结构B.线性表的顺序存储结构适用于频繁插入/删除数据元素的情况C.线性表的链表存储结构适用于频繁插入/删除数据元素的情况D.线性表的链表存储结构优于顺序存储结构5.非空的循环单链表head 的尾结点(由p 所指向)满足(c )。

A.p->next==NULL B.p==NULL C.p->next==head D.p==head 6.栈和队列的共同点是(c )。

A.都是先进先出 B.都是先进后出C.只允许在端点处插入和删除元素 D.没有共同点7.设若入栈序列的元素顺序为X,Y,Z,判断下列哪一个出栈序列是不可能的。

(c )。

A.XYZ B.YZX C.ZXY D.ZYX 8.设数组Data[0..m-1]作为循环队列SQ 的存储空间,front 为队头指针,rear 为队尾指针,则执行出队操作的语句为(b )。

A.front=front+1 B.front=(front+1)%m C.rear=rear+1 D.rear=(rear+1)%m 9.深度为5的二叉树至多有(d )个结点。

A.16 B.10 C.32 D.3110.如下图所示二叉树的中序遍历序列是(b )。

A.abcdgef
B.dfebagc
C.dbaefcg
D.defbagc
w w .z h i n a n c h e .c o m
11.引入二叉线索树的目的是(a )。

A.加快查找结点的前驱或后继的速度B.为了能在二叉树中方便的进行插入与删除
C.为了能方便的找到双亲D.使二叉树的遍历结果唯一
12.下列哪一种图的邻接矩阵是对称矩阵?(b )
A.有向图B.无向图C.AOV 网D.AOE 网
13.已知一有向图的邻接表存储结构如下图所示。

根据有向图的深度优先遍历算法,从顶点v1出发,所得到的顶点序列是(c
)。

A.v1,v2,v3,v5,v4
B.v1,v2,v3,v4,v5
C.v1,v3,v4,v5,v2
D.v1,v4,v3,v5,v214.对于静态表的顺序查找法,若在表头设置监视哨,则正确的查找方式为(c )。

A.从第0个元素往后查找该数据元素
B.从第1个元素往后查找该数据元素
C.从第n 个元素往开始前查找该数据元素
D.与查找顺序无关
15.适用于折半查找的表的存储方式及元素排列要求为(d )。

A.链接方式存储,元素无序B.链接方式存储,元素有序
C.顺序方式存储,元素无序D.顺序方式存储,元素有序
16.由关键字序列(12,7,36,25,18,2)构造一棵二叉排序树(初始为空,第一个关键字作为根结点插入,此后对于任意关键字,若小于根结点的关键字,则插入左子树中;若大于根结点的关键字,则插入右子树中,且左、右子树均为二叉排序树),该二叉排序树的高度(层数)为(c )。

A.6
B.5
C.4
D.3
17.若线性表(24,13,31,6,15,18,8)采用散列(Hash)法进行存储和查找,设散列函数为H(Key)=Key mod 11,则构造散列表时发生冲突的元素为(a )(其中的mod 表示整除取余运算)。

A.24和13
B.6和15
C.6和24
D.18和8
18.下面给出的四种排序法中(d )排序法是不稳定性排序法。

A.插入
B.冒泡
C.归并
D.堆
19.直接插入排序的平均时间复杂度为(d )。

A.O(logn)B.O(n)C.O(nlogn)D.O(n 2)
20.一组记录的关键字为(46,79,56,38,40,84),则利用快速排序的方法,以第一个记录为基
准得到的一次划分结果为(
c )。

A.38,40,46,56,79,84
B.40,38,46,79,56,84
C.40,38,46,56,79,84
D.40,38,46,84,56,79
w w w .z h i n a n c h e .c o m
二、算法理解题(本大题共3个小题,第1、2小题各7分,第3小题6分,共20分)
1.请选用克鲁斯卡尔算法或普里姆算法为下图构造最小生成树,要求写明用的哪一种算法并画出构
造过程:
2.假设用于通讯的电文仅由8个字母(A,B,C,D,E,F,G,H)组成,字母在电文中出现的频率分别为
0.05,0.29,0.07,0.08,0.14,0.23,0.03,0.11。

试为这8个字母设计赫夫曼编码。

3.将初始关键字序列(51、12、55、23、49、7、60、36、72、12)排为升序,写出下列排序方法的每一趟排序结果。

(1)希尔排序(设增量序列为5、3、1);(2)归并排序三、算法设计题(本大题共4个小题,每小题10分,共40分)1.已知一带头结点的非空单链表的头指针为L,结点的构造为(data,next),其中data 为数据域,next 为指针域。

请写一算法,将链表中数据域值最小的那个结点(假设各结点数据域值互不相同)移到链表的最前面。

要求:不得额外申请新的结点。

2.设一棵二叉树以二叉链表为存储结构,结点结构为lchild |data |rchild。

设计一个算法:
统计一棵二叉树中所有叶结点的数目及非叶结点的数目。

3.基于图的深度优先搜索策略写一算法,判断以邻接表方式存储的有向图G 中是否存在由顶点V i 到顶点V j 的路径(i≠j)。

4.写一算法,将50个学生的记录(每个学生的记录包括学号和成绩)按成绩由高到低的次序输出,要求排序方法采用简单选择排序。

w w w .z h i n a n
c h e .c o m。