数据结构C卷

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数据结构C卷
一、选择题(30分)
1.算法分析的目的是()。

A.找出数据结构的合理性 B.研究算法中的输入/输出关

C.分析算法的效率以求改进 D.分析算法的易读性
2.线性表采用链式存储时,结点的存储地址()。

A.必须是不连续的 B.连续与否均可
C.必须是连续的 D.和头结点的存储地址相连续
3.在一个单链表中,已知q所指结点是p所指结点的前驱结点,若在q所指结点和p所指结点之间插入s 结点,则执行()
A s->link=p->link;p->link=s; B
p->link=s->link;s->link=p;
C q->link=s;s->link=p; D
p->link=s;s->link=q;
4. 设一个栈的输入序列为1,2,3,4,则借助一个栈所得到的输出序列不可能是()。

A 1,2,3,4
B 4,3,2,1
C 1,3,2,4
D 3,
1,2,4
5.若循环队列用数组A[m]存放其元素值,已知其头尾指针分别是front和rear,则当前队列中的元素个数
是()。

A (rear-front+m) mod m
B rear-front+1
C rear-front-1
D rear-front
6.深度为5的二叉树至多有()个结点。

A.16 B.32 C.31 D.10
7. 如果从无向图的任一顶点出发进行一次深度优先搜索可访问所有顶点,则该图一定是()。

A 连通图
B 完全图
C 有回路的图
D 一棵树
8.已知一哈希表,采用链地址法处理冲突,在这种表上查找某一键值,可能要比较多次,所有被比较的键值()。

A 一定都是同义词
B 均不是同义词
C 不一定都是同义词
D 都相同
9.顺序存储的线性表(a
0,a
1
,…,a
n-1
),在任一结点前插入一个新结点时所需移动结点的平均次数为()。

A n
B n/2
C n+1
D (n+1)/2
10.设串s1=’abcdefg’,s2=’pqrst’,则运算
s=concat(substr(s1,2,length(s2)),substr(s1,length(s2),2))的结果串是()。

A bcdef
B bcdefg
C bcpqrst
D bcdefef
11. 数组A[5][6]的每个元素占5个单元,将其按行优先次序存储在起始地址为1000的连续的内存单元中,则元素A[5][5]的地址为()。

A1175 B 1145 C 1120 D 1125
12. 设已知一个稀疏矩阵的三元组如下:(1,2,3),(1,6,1),(3,1,5),(3,2,-1),(4,5,4),(5,1,-3),则其转置矩阵的三元组表中第3个三元组为()。

A (2,1,3)
B (3,1,5)
C (3,2,-1)
D (2,3,-1)
13. 如下图所示二叉树的中序遍历序列是()。

A abdgcefh
B dgbaechf
C gdbehfca
D abcdefgh
○a
○b○c
○d○e○f
○g○h
14. 若对有18个元素的有序表作折半查找,则查找A[2]的比较序列的下标为()。

A 1,2,3
B 8,4,1,2
C 9,4,2
D 8,3,1,2
15.一组记录的关键字为(46,79,56,38,40,84),则利用快速排序的方法,以第一个记录为基准元素得到的一次划分结果为()。

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
二、填空题(15分)
1.假设sq[maxsize]为一个顺序存储的栈,变量top指示栈顶元素的位置。

则入栈操作为
();出栈操作为()。

2.在一个有向图的邻接表中,一个顶点的链表中结点的个数等于这个顶点的(),在逆邻接表中,一个顶点的链表中结点的个数等于这个顶点的()。

3.按()遍历二叉排序树,可以得到按值递增的关键字序列,在下图所示的二叉排序树
中,查找关键字85的过程中,需和85进行比较的关键字序列为()。

4.广义表A=((a,b),(c,d)),则下面式子tail(head(A) ) 的值
为。

5.如果要将序列(50,16,23,68,94,70,73)建成小根堆,则只需把16与()
相互交换。

三、应用题(30分)
1.设下图所示的二叉树是由森林转换而成的,试将它还原为森林。

○A
○B○H
○G○C○I
○E○D○J
○F○K
2.哈希函数H(K)=k%13,给定键值序列为13,41,15,56,6,68,12,30,38,64,用链地址法处理冲突,要求:
(1)构造哈希表;
(2)求出在等概率情况下,查找成功的平均查找长度。

3.给定下列图,从顶点v
出发,用图示过程描述求出最小生成树的步骤
1
(用Prim方法)。

○1
1 2 3
○2 3 ○3 2 ○4
1 2 1
○5
4.用下面给出的数据序列,构造一棵哈夫曼树(左子树根结点的权小于等于右子树根结点的权),并求出其带权路径长度。

4, 7, 8, 2, 5, 16, 30
5.应用希尔排序算法,对键值序列49,38,65,97,76,13,27,49从小到大进行排序,试写出每趟排序的结果(设增量序列为:4,2,1)。

四、算法设计题(20分)
1.已知线性表的元素是无序的,且以带头结点的单链表作为存储结构。

设计一个删除表中所有值小于max 但大于min的元素的算法。

2.设一棵二叉树T以二叉链表为存储结构,编写算法求该二叉树叶子结点的数目。

五、算法理解题(5分)
1.指出函数what的功能以及what返回值的含义(R是一个有序表,key是一个关键字)。

Typedef struct{
Int key;
Datatype otherinfo;
}Nodetype;
typedef Nodetype seqlist[MAX];
int what(seqlist R,int low,int high,int k)
{
int m;
if (low<=high){
m=(low+high)/2;
if (k==R[m].key)
return(m);
else
if (k<R[m].key)
return(what(R,low,m-1,k));
else
return(what(R,m+1,high,k));
}
else
return(-1);
}。

相关文档
最新文档