c语言数据结构试题模拟试卷_精品文档Word文件下载.doc

上传人:b****1 文档编号:13140460 上传时间:2022-10-06 格式:DOC 页数:21 大小:248.50KB
下载 相关 举报
c语言数据结构试题模拟试卷_精品文档Word文件下载.doc_第1页
第1页 / 共21页
c语言数据结构试题模拟试卷_精品文档Word文件下载.doc_第2页
第2页 / 共21页
c语言数据结构试题模拟试卷_精品文档Word文件下载.doc_第3页
第3页 / 共21页
c语言数据结构试题模拟试卷_精品文档Word文件下载.doc_第4页
第4页 / 共21页
c语言数据结构试题模拟试卷_精品文档Word文件下载.doc_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

c语言数据结构试题模拟试卷_精品文档Word文件下载.doc

《c语言数据结构试题模拟试卷_精品文档Word文件下载.doc》由会员分享,可在线阅读,更多相关《c语言数据结构试题模拟试卷_精品文档Word文件下载.doc(21页珍藏版)》请在冰豆网上搜索。

c语言数据结构试题模拟试卷_精品文档Word文件下载.doc

()

A.在队列第i个元素之后插入一个元素B.从队头删除一个元素

C.判断一个队列是否为空D.读取队头元素的值

4. 

字符A、B、C依次进入一个栈,按出栈的先后顺序组成不同的字符串,至多可以组成()个不同的字符串?

A.14B.5  C.6  D.8

5. 

由权值分别为3,8,6,2的叶子生成一棵哈夫曼树,它的带权路径长度为()。

E

A

G

C

B

D

F

图1

A.11B.35C.19D.53

以下6-8题基于图1。

6. 

该二叉树结点的前序遍历的序列为()。

A. 

E、G、F、A、C、D、B

B. 

E、A、G、C、F、B、D

C. 

E、A、C、B、D、G、F

D. 

E、G、A、C、D、F、B

7. 

该二叉树结点的中序遍历的序列为()。

A.A、B、C、D、E、G、F

B.E、A、G、C、F、B、D

C.E、A、C、B、D、G、F

E. 

B、D、C、A、F、G、E

8. 

该二叉树的按层遍历的序列为()。

A.E、G、F、A、C、D、B   B.E、A、C、B、D、G、F

C.E、A、G、C、F、B、D    D.E、G、A、C、D、F、B

9. 

下面关于图的存储的叙述中正确的是()。

A.用邻接表法存储图,占用的存储空间大小只与图中边数有关,而与结点个数无关

B.用邻接表法存储图,占用的存储空间大小与图中边数和结点个数都有关

C.用邻接矩阵法存储图,占用的存储空间大小与图中结点个数和边数都有关

D.用邻接矩阵法存储图,占用的存储空间大小只与图中边数有关,而与结点个数无关

10. 

设有关键码序列(q,g,m,z,a,n,p,x,h),下面哪一个序列是从上述序列出发建堆的结果?

A.a,g,h,m,n,p,q,x,z B.a,g,m,h,q,n,p,x,z

C.g,m,q,a,n,p,x,h,zD.h,g,m,p,a,n,q,x,z

二、 

填空题(每空1分,共26分)

数据的物理结构被分为___顺序 __、_链表__、___索引___和__散列__四种。

对于一个长度为n的顺序存储的线性表,在表头插入元素的时间复杂度为__O(n)___,在表尾插入元素的时间复杂度为____O

(1)__。

向一个由HS指向的链栈中插入一个结点时p时,需要执行的操作是__p->

next=HS____;

删除一个结点时,需要执行的操作是_______HS=pHS=HS->

next____________(假设栈不空而且无需回收被删除结点)。

对于一棵具有n个结点的二叉树,一个结点的编号为i(1≤i≤n),若它有左孩子则左孩子结点的编号为__2i______,若它有右孩子,则右孩子结点的编号为__2i+1______,若它有双亲,则双亲结点的编号为____i/2____。

当向一个大根堆插入一个具有最大值的元素时,需要逐层__向上_______调整,直到被调整到____根______位置为止。

以二分查找方法从长度为10的有序表中查找一个元素时,平均查找长度为___2.9_____。

表示图的三种常用的存储结构为___邻接矩阵__、__邻接表___和____边集数组____。

对于线性表(70,34,55,23,65,41,20)进行散列存储时,若选用H(K)=K%7作为散列函数,则散列地址为0的元素有__1_____个,散列地址为6的有__4___个。

在归并排序中,进行每趟归并的时间复杂度为_O(n)_____,整个排序过程的时间复杂度为__O(nlog2n)___,空间复杂度为___O(n)___。

在一棵m阶B_树上,每个非树根结点的关键字数目最少为_[m/2]-1___个,最多为____m-1____个,其子树数目最少为___[m/2]_____,最多为____m____。

三、 

运算题(每题6分,共24分)

图2

写出下列中缀表达式的后缀形式:

(1) 

3X/(Y-2)+13x*Y2-/1+

(2) 

2+X*(Y+3)2XY3+*+

试对图2中的二叉树画出其:

顺序存储表示的示意图;

二叉链表存储表示的示意图。

  

已知一个图的顶点集V和边集E分别为:

V={1,2,3,4,5,6,7};

E={(1,2)3,(1,3)5,(1,4)8,(2,5)10,(2,3)6,(3,4)15,(3,5)12,(3,6)9,(4,6)4,

(4,7)20,(5,6)18,(6,7)25};

按照普里姆算法从顶点1出发得到最小生成树,试写出在最小生成树中依次得到的各条边。

(1,2)3,(1,3)5,(1,4)8,(4,6)4,(2,5)10,(4,7)20

四、 

阅读算法(每题7分,共14分)

voidAE(Stack&

S){

InitStack(S);

Push(S,3);

Push(S,4);

intx=Pop(S)+2*Pop(S);

Push(S,x);

inti,a[5]={1,5,8,12,15};

for(i=0;

i<

5;

i++)Push(S,2*a[i]);

while(!

StackEmpty(S))cout<

<

Pop(S)<

'

'

;

}

该算法被调用后得到的输出结果为:

30241610210

voidABC(BTNode*BT,int&

c1,int&

c2){

if(BT!

=NULL){

ABC(BT->

left,c1,c2);

c1++;

if(BT->

left==NULL&

&

BT->

right==NULL)c2++;

right,c1,c2);

}//if

}

该函数执行的功能是什么?

统计出BT所指向的二叉树的结点总数和叶子总数

五、 

算法填空(共8分)

向单链表的末尾添加一个元素的算法。

VoidInsertRear(LNode*&

HL,constElemType&

item)

{

LNode*newptr;

newptr=newLNode;

If(___newptr==NULL___)

cerr<

"

Memoryallocationfailare!

endl;

exit

(1);

}

____newptr->

=data____=item;

newptr->

next=NULL;

if(HL==NULL)

HL=_______newptr____________;

else{

LNode*P=HL;

While(P->

next!

=NULL)

__p=p->

next________;

p->

next=newptr;

}

六、 

编写算法(共8分)

编写从类型为List的线性表L中将第i个元素删除的算法,(假定不需要对i的值进行有效性检查,也不用判别L是否为空表。

voidDelete(List&

L,inti)

{

for(intj=i-1;

j<

L.size-1;

j++)

L.list[j]=L.list[j+1];

//第i个元素的下标为i-1

L.size--;

模拟试卷一参考答案

单选题(每题2分,共20分)

1.B2.D3.A4.B5.B6.C7.A8.C9.B10.B

填空题(每空1分,共26分)

顺序链表索引散列

O(n)O

(1)

next=HS;

HS=pHS=HS->

next

2i2i+1ë

i/2û

(或i/2)

图3

向上根

2.9

邻接矩阵邻接表边集数组

14

O(n)O(nlog2n)O(n)

é

m/2ù

-1m-1é

m

运算题(每题6分,共24分)

(1)3X*Y2-/1+

2XY3+*+

(1)

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

(2)见图3所示:

(1)不是小根堆。

调整为:

{12,65,33,70,24,56,48,92,86,33}

(2)是小根堆。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 教学研究 > 教学案例设计

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1