数据结构期末考试试题A卷.docx

上传人:b****3 文档编号:4577793 上传时间:2023-05-07 格式:DOCX 页数:11 大小:41.53KB
下载 相关 举报
数据结构期末考试试题A卷.docx_第1页
第1页 / 共11页
数据结构期末考试试题A卷.docx_第2页
第2页 / 共11页
数据结构期末考试试题A卷.docx_第3页
第3页 / 共11页
数据结构期末考试试题A卷.docx_第4页
第4页 / 共11页
数据结构期末考试试题A卷.docx_第5页
第5页 / 共11页
数据结构期末考试试题A卷.docx_第6页
第6页 / 共11页
数据结构期末考试试题A卷.docx_第7页
第7页 / 共11页
数据结构期末考试试题A卷.docx_第8页
第8页 / 共11页
数据结构期末考试试题A卷.docx_第9页
第9页 / 共11页
数据结构期末考试试题A卷.docx_第10页
第10页 / 共11页
数据结构期末考试试题A卷.docx_第11页
第11页 / 共11页
亲,该文档总共11页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

数据结构期末考试试题A卷.docx

《数据结构期末考试试题A卷.docx》由会员分享,可在线阅读,更多相关《数据结构期末考试试题A卷.docx(11页珍藏版)》请在冰点文库上搜索。

数据结构期末考试试题A卷.docx

数据结构期末考试试题A卷

湛江师范学院2008年-2009学年度第1学期

期末考试试题A卷

(考试时间:

120分钟)

题号

总分

总评分人

复查人

分值

40

20

30

10

100

得分

考试科目:

数据结构

请将所有答案填写在答题卡上,交卷时请将所有试卷上交

一、单选题(每小题2分,共40分)

1.下列算法的时间复杂度是(B)。

for(i=0;i

c[i][j]=i+j;

AO

(1)BO(n)CO(log2n)DO(n2)

2.每一个存储结点不仅含有一个数据元素,还包含一个指针,该存储方式是(B)存储方式。

A顺序B链式C索引D散列

3.指针p指向以L为头指针的循环链表的首元素的条件是(A)。

Ap==LBp->next==LCL->next==pDp->next==NULL

4.4个元素进S栈的顺序是A、B、C、D,进行两次Pop(S,x)操作后,栈顶元素的值是(B)。

AABBCCDD

5.经过下列栈的运算后GetTop(S)的值是(A)。

InitStack(s);Push(s,a);Push(s,b);Pop(s);

AaBbC1D2

()

()

6.栈的特点是(B)。

A先进先出B后进先出C后进后出D不进不出

7.经过下列运算后GetHead(Q)的值是(A)

InitQueue(Q);EnQueue(Q,a);EnQueue(Q,b);

AaBbC1D2

8.一维数组的元素起始地址loc[0]=1000,元素长度为4,则loc[2]为(C)。

A1000B1010C1008D1020

9.二叉树第i层上最多有(C)个结点。

A2iB2i-1C2i-1Di2

10.满二叉树(A)二叉树。

A一定是完全B不一定是完全C不是D不是完全

11.二叉树按二叉链表存储,每个结点包含三个域(lchild、data、rchild),若p指针指向二叉树的根结点,经过运算while(p->rchild!

=null)p=p->rchild,则(A)。

Ap指向二叉树的最右下方的结点Bp指向二叉树的最左下方的结点

Cp仍指向根结点Dp为null

12.在具有n个结点的完全二叉树中,结点i(2i

A是2iB不存在C是2i+1D是2i-1

13.有N个顶点的无向图的邻接矩阵是用(A)数组存储。

AN行N列B一维C任意行N列DN行任意列

14.连通分量是(A)的极大连通子图。

A无向图B有向图C树D图

15.最小生成树的构造可使用(A)算法。

Aprim算法B卡尔算法C迪杰斯特拉算法D哈夫曼算法

16.查找表是以(A)为逻辑结构。

A集合B图C文件D树

17.散列查找是由键值(A)确定散列表中的位置,进行存储或查找。

A的散列函数值B本身C平方D相反数

18.索引顺序表的特点是顺序表中的数据(D)。

A有序B无序C块间有序D散列

19.排序是根据(C)的大小重新安排各元素的顺序。

A数组B关键字C元素D结点

20.不稳定的排序方法是指在排序中,关键字值相等的不同记录间的前后相对位置(C)。

A保持不变B保持相反C不定D无关

二、填空题(每空2分,共20分)

1.已知带表头结点的单链表L,指针P指向L链表中的一个结点(非首结点、非尾结点),则删除P结点的直接后继结点的语句序列是P->next=P->next->next;删除尾结点的语句序列是while(p->next->next)p=p->next;p->next=NULL;。

2.栈S经过运算InitStack(s);Push(s,a);Pop(s,x)后,x的值是a。

3.队列Q经过运算InitQueue(q);EnQueue(q,a);OutQueue(Q,x)后,EmptyQueue(q)的值是TRUE。

4.根结点的层数为1。

5.在树与二叉树之间的转换方法中,树的根变为二叉树的根。

6.将下列按关键字的值从小到大的直接选择排序算法补充完整。

Select(listr,intn)

{

for(i=1;语句1i<=n;i++)

{

k=i;

for(j=i+1;语句2j<=n;j++)

if(r[k].key>r[j].key)语句3k=j;;

if(i!

=k)

swap(r[k],r[i]);

}

}

7.两个不同的元素存入同一个散列表,当这两个元素的散列函数相同时,称为冲突。

 

三、应用题(每题6分,共30分)

1.二叉树的基本形态有几种,请画出所有形态。

的前序、中序和后

2.写出图1所示二叉树序遍历序列。

答:

前序:

ABDECF中序:

DBEACF后序:

DEBFCA

3.根据图2所示邻接表,写出该图从C点出发的深度和广度优先搜索序列。

答:

深度:

CDBAFE广度:

CDABFE

4.A、B、C三个元素进S栈的顺序是A、B、C,出栈的序列是C、B、A,请写出相应的操作序列。

答:

A入栈(Push(S,A)),B入栈(Push(S,B)),C入栈(Push(S,C)),C出栈(Pop(S)),B出栈(Pop(S)),A出栈(Pop(S))。

5.假设通信的电文由字符集a、b、c、d、e、f、g中的字母构成。

它们在电文中出现的频度分别为0.31、0.16、0.10、0.08、0.11、0.20、0.04,为这7个字母设计哈夫曼树。

答:

四、程序设计题10分

建一个单链表,将10个学生的成绩放入单链表(学生的成绩从键盘上输入),然后再将单链表中的学生成绩打印出来。

#include"stdafx.h"

#include/*malloc()等*/

#include/*EOF(=^Z或F6),NULL*/

#include

#include/*exit()*/

/*函数结果状态代码*/

#defineTRUE1

#defineFALSE0

#defineOK1

typedefintStatus;/*Status是函数的类型,其值是函数结果状态代码,如OK等*/

typedefintBoolean;/*Boolean是布尔类型,其值是TRUE或FALSE*/

typedefintElemType;

structLNode

{

ElemTypedata;

structLNode*next;

};

typedefstructLNode*LinkList;/*另一种定义LinkList的方法*/

StatusInitList(LinkList*L)

{/*操作结果:

构造一个空的线性表L*/

*L=(LinkList)malloc(sizeof(structLNode));/*产生头结点,并使L指向此头结点*/

if(!

*L)/*存储分配失败*/

exit(OVERFLOW);

(*L)->next=NULL;/*指针域为空*/

returnOK;

}

StatusListInsert(LinkListL,ElemTypee)

{/*在带头结点的单链线性表L中第i个位置之前插入元素e*/

intj=0;

LinkListp=L,s;

while(p&&p->next)/*寻找第i-1个结点*/

{

p=p->next;

}

s=(LinkList)malloc(sizeof(structLNode));/*生成新结点*/

s->data=e;/*插入L中*/

p->next=s;

s->next=NULL;

returnOK;

}

StatusListTraverse(LinkListL,void(*vi)(ElemType))

{/*操作结果:

依次对L的每个数据元素调用函数vi()。

一旦vi()失败,则操作失败*/

LinkListp=L->next;

while(p)

{

vi(p->data);

p=p->next;

}

printf("\n");

returnOK;

}

voidvisit(ElemTypec)/*与main2-1.c不同*/

{

printf("%d",c);

}

intmain(intargc,char*argv[])

{

LinkListL;

inti,e;

i=InitList(&L);

printf("请输入10个学生的成绩:

\n");

for(i=1;i<=10;i++)

{

scanf("%d",&e);

ListInsert(L,e);

}

printf("在L的表尾依次插入10个学生的成绩后,输出链表结果:

L=");

ListTraverse(L,visit);

//*************************

return0;

}

答题卡

得分

评卷人

一、单选题:

(40分,每题2分)

题号

1

2

3

4

5

6

7

8

9

10

答案

题号

11

12

13

14

15

16

17

18

19

20

答案

 

得分

评卷人

二、填空题:

(20分,每空2分)

1.删除P结点的直接后继结点的语句序列是:

 

删除尾结点的语句序列是:

 

2.

3.

4.

5.

6.

语句1:

语句2:

语句3:

7.

得分

评卷人

 

三、应用题(30分,每题6分)

得分

评卷人

四、程序设计题,10分

 

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

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2