《数据结构》期末考试试题及答案word文档良心出品.docx

上传人:b****4 文档编号:6011142 上传时间:2023-05-09 格式:DOCX 页数:27 大小:88.09KB
下载 相关 举报
《数据结构》期末考试试题及答案word文档良心出品.docx_第1页
第1页 / 共27页
《数据结构》期末考试试题及答案word文档良心出品.docx_第2页
第2页 / 共27页
《数据结构》期末考试试题及答案word文档良心出品.docx_第3页
第3页 / 共27页
《数据结构》期末考试试题及答案word文档良心出品.docx_第4页
第4页 / 共27页
《数据结构》期末考试试题及答案word文档良心出品.docx_第5页
第5页 / 共27页
《数据结构》期末考试试题及答案word文档良心出品.docx_第6页
第6页 / 共27页
《数据结构》期末考试试题及答案word文档良心出品.docx_第7页
第7页 / 共27页
《数据结构》期末考试试题及答案word文档良心出品.docx_第8页
第8页 / 共27页
《数据结构》期末考试试题及答案word文档良心出品.docx_第9页
第9页 / 共27页
《数据结构》期末考试试题及答案word文档良心出品.docx_第10页
第10页 / 共27页
《数据结构》期末考试试题及答案word文档良心出品.docx_第11页
第11页 / 共27页
《数据结构》期末考试试题及答案word文档良心出品.docx_第12页
第12页 / 共27页
《数据结构》期末考试试题及答案word文档良心出品.docx_第13页
第13页 / 共27页
《数据结构》期末考试试题及答案word文档良心出品.docx_第14页
第14页 / 共27页
《数据结构》期末考试试题及答案word文档良心出品.docx_第15页
第15页 / 共27页
《数据结构》期末考试试题及答案word文档良心出品.docx_第16页
第16页 / 共27页
《数据结构》期末考试试题及答案word文档良心出品.docx_第17页
第17页 / 共27页
《数据结构》期末考试试题及答案word文档良心出品.docx_第18页
第18页 / 共27页
《数据结构》期末考试试题及答案word文档良心出品.docx_第19页
第19页 / 共27页
《数据结构》期末考试试题及答案word文档良心出品.docx_第20页
第20页 / 共27页
亲,该文档总共27页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

《数据结构》期末考试试题及答案word文档良心出品.docx

《《数据结构》期末考试试题及答案word文档良心出品.docx》由会员分享,可在线阅读,更多相关《《数据结构》期末考试试题及答案word文档良心出品.docx(27页珍藏版)》请在冰点文库上搜索。

《数据结构》期末考试试题及答案word文档良心出品.docx

《数据结构》期末考试试题及答案word文档良心出品

2017《数据结构》期末考试试题及答案

《数据结构》期末考试试题及答案1

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

1.    栈和队列的共同特点是()。

A.只允许在端点处插入和删除元素

B.都是先进后出

C.都是先进先出

D.没有共同点

2.    用链接方式存储的队列,在进行插入运算时().

A.仅修改头指针 B.头、尾指针都要修改

C.仅修改尾指针D.头、尾指针可能都要修改

3.    以下数据结构中哪一个是非线性结构?

()

A.队列  B.栈C.线性表  D.二叉树

4.    设有一个二维数组A[m][n],假设A[0][0]存放位置在644(10),A[2][2]存放位置在676(10),每个元素占一个空间,问A[3][3](10)存放在什么位置?

脚注(10)表示用10进制表示。

A.688B.678C.692D.696

5.    树最适合用来表示()。

A.有序数据元素B.无序数据元素

C.元素之间具有分支层次关系的数据D.元素之间无联系的数据

6.    二叉树的第k层的结点数最多为().

A.2k-1B.2K+1C.2K-1   D.2k-1

7.    若有18个元素的有序表存放在一维数组A[19]中,第一个元素放A[1]中,现进行二分查找,则查找A[3]的比较序列的下标依次为()

A.1,2,3B.9,5,2,3

C.9,5,3D.9,4,2,3

8.    对n个记录的文件进行快速排序,所需要的辅助存储空间大致为

A.O

(1)  B.O(n)  C.O(1og2n)D.O(n2)

9.    对于线性表(7,34,55,25,64,46,20,10)进行散列存储时,若选用H(K)=K%9作为散列函数,则散列地址为1的元素有()个,

A.1B.2C.3D.4

10.设有6个结点的无向图,该图至少应有()条边才能确保是一个连通图。

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

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

1.       通常从四个方面评价算法的质量:

_________、_________、_________和_________。

2.       一个算法的时间复杂度为(n3+n2log2n+14n)/n2,其数量级表示为________。

3.       假定一棵树的广义表表示为A(C,D(E,F,G),H(I,J)),则树中所含的结点数为__________个,树的深度为___________,树的度为_________。

4.       后缀算式923+-102/-的值为__________。

中缀算式(3+4X)-2Y/3对应的后缀算式为_______________________________。

5.       若用链表存储一棵二叉树时,每个结点除数据域外,还有指向左孩子和右孩子的两个指针。

在这种存储结构中,n个结点的二叉树共有________个指针域,其中有________个指针域是存放了地址,有________________个指针是空指针。

6.       对于一个具有n个顶点和e条边的有向图和无向图,在其对应的邻接表中,所含边结点分别有_______个和________个。

7.       AOV网是一种___________________的图。

8.       在一个具有n个顶点的无向完全图中,包含有________条边,在一个具有n个顶点的有向完全图中,包含有________条边。

9.       假定一个线性表为(12,23,74,55,63,40),若按Key%4条件进行划分,使得同一余数的元素成为一个子表,则得到的四个子表分别为____________________________、___________________、_______________________和__________________________。

10.   向一棵B_树插入元素的过程中,若最终引起树根结点的分裂,则新树比原树的高度___________。

11.   在堆排序的过程中,对任一分支结点进行筛运算的时间复杂度为________,整个堆排序过程的时间复杂度为________。

12.   在快速排序、堆排序、归并排序中,_________排序是稳定的。

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

1.在如下数组A中链接存储了一个线性表,表头指针为A[0].next,试写出该线性表。

A01234567

data

 

60

50

78

90

34

 

40

next

3

5

7

2

0

4

 

1

 

2.       请画出图10的邻接矩阵和邻接表。

 

3.   已知一个图的顶点集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};

用克鲁斯卡尔算法得到最小生成树,试写出在最小生成树中依次得到的各条边。

 

4.       画出向小根堆中加入数据4,2,5,8,3时,每加入一个数据后堆的变化。

 

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

1.    LinkListmynote(LinkListL)

{//L是不带头结点的单链表的头指针

if(L&&L->next){

q=L;L=L->next;p=L;

S1:

while(p->next)p=p->next;

S2:

p->next=q;q->next=NULL;

}

returnL;

}

请回答下列问题:

(1)说明语句S1的功能;

(2)说明语句组S2的功能;

(3)设链表表示的线性表为(a1,a2,…,an),写出算法执行后的返回值所表示的线性表。

 

2.    voidABC(BTNode*BT)

{

ifBT{

ABC(BT->left);

ABC(BT->right);

cout<data<<'';

}

}

该算法的功能是:

 

五、                  算法填空(共8分)

二叉搜索树的查找——递归算法:

boolFind(BTreeNode*BST,ElemType&item)

{

if(BST==NULL)

returnfalse;//查找失败

else{

if(item==BST->data){

item=BST->data;//查找成功

return___________;}

elseif(itemdata)

returnFind(______________,item);

elsereturnFind(_______________,item);

}//if

}

 

六、                  编写算法(共8分)

统计出单链表HL中结点的值等于给定值X的结点数。

intCountX(LNode*HL,ElemTypex)

 

试题1答案

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

1.A2.D3.D4.C5.C6.D7.D8.C9.D10.A

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

1.    正确性易读性强壮性高效率

2.    O(n)

3.    933

4.    -134X*+2Y*3/-

5.    2nn-1n+1

6.    e2e

7.    有向无回路

8.    n(n-1)/2n(n-1)

9.    (12,40)()(74)(23,55,63)

10. 增加1

11. O(log2n)O(nlog2n)

12. 归并

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

1.    线性表为:

(78,50,40,60,34,90)

2.    邻接矩阵:

邻接表如图11所示:

图11

3.    用克鲁斯卡尔算法得到的最小生成树为:

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

4.    见图12

 

 

 

 

 

 

 

   

图12

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

1.    

(1)查询链表的尾结点

(2)将第一个结点链接到链表的尾部,作为新的尾结点

(3)返回的线性表为(a2,a3,…,an,a1)

2.    递归地后序遍历链式存储的二叉树。

五、                     算法填空(每空2分,共8分)

trueBST->leftBST->right

六、                     编写算法(8分)

intCountX(LNode*HL,ElemTypex)

{inti=0;LNode*p=HL;//i为计数器

while(p!

=NULL)

{if(P->data==x)i++;

p=p->next;

}//while,出循环时i中的值即为x结点个数

returni;

}//CountX

 

《数据结构》期末考试试题及答案2

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

1、在一个长度为n的顺序线性表中顺序查找值为x的元素时,查找成功时的平均查找长度(即x与元素的平均比较次数,假定查找每个元素的概率都相等)为()。

AnBn/2C(n+1)/2D(n-1)/2

2、在一个单链表中,若q所指结点是p所指结点的前驱结点,若在q与p之间插入一个s所指的结点,则执行()。

As→link=p→link;p→link=s;Bp→link=s;s→link=q;

Cp→link=s→link;s→link=p;Dq→link=s;s→link=p;

3、     栈的插入和删除操作在()进行。

A栈顶B栈底C任意位置D指定位置

4、     由权值分别为11,8,6,2,5的叶子结点生成一棵哈夫曼树,它的带权路径长度为()

A24B71C48D53

二、           填空题(每空1分,共32分)

1、数据的逻辑结构被分为__________、___________、________和________四种。

2、一种抽象数据类型包括______________和_____________两个部分。

3、在下面的数组a中链接存储着一个线性表,表头指针为a[o].next,则该线性表为_________________________________________________。

012345678

 

60

56

42

38

 

74

25

 

4

3

7

6

2

0

1

 

data

next

 

4、在以HL为表头指针的带表头附加结点的单链表和循环单链表中,判断链表为空的条件分别为________________和____________________。

5、用具有n个元素的一维数组存储一个循环队列,则其队首指针总是指向队首元素的___________,该循环队列的最大长度为__________。

6、当堆栈采用顺序存储结构时,栈顶元素的值可用———————表示;当堆栈采用链接存储结构时,栈顶元素的值可用_______________表示。

7、一棵高度为5的二叉树中最少含有_________个结点,最多含有________个结点;

一棵高度为5的理想平衡树中,最少含有_________个结点,最多含有_________个结点。

8、在图的邻接表中,每个结点被称为____________,通常它包含三个域:

一是_____________;二是___________;三是_____________。

9、在一个索引文件的索引表中,每个索引项包含对应记录的_________和___________两项数据。

10、假定一棵树的广义表表示为A(B(C,D(E,F,G),H(I,J))),则树中所含的结点数为_________个,树的深度为_________,树的度为________,结点H的双亲结点为________,孩子结点为_______________。

11、在堆排序的过程中,对任一分支结点进行筛运算的时间复杂度为_________,整个堆排序过程的时间复杂度为________________。

12、在对m阶的B_树插入元素的过程中,每向一个结点插入一个索引项(叶子结点中的索引项为关键字和空指针)后,若该结点的索引项数等于______个,则必须把它分裂为_______个结点。

 

三、           运算题(每小题6分,共24分)

1、已知一组记录的排序码为(46,79,56,38,40,80,95,24),写出对其进行快速排序的每一次划分结果。

 

2、一个线性表为B=(12,23,45,57,20,03,78,31,15,36),设散列表为HT[0..12],散列函数为H(key)=key%13并用线性探查法解决冲突,请画出散列表,并计算等概率情况下查找成功的平均查找长度。

 

3、已知一棵二叉树的前序遍历的结果序列是ABECKFGHIJ,中序遍历的结果是EBCDAFHIGJ,试写出这棵二叉树的后序遍历结果。

 

4、已知一个图的顶点集V各边集G如下:

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

E={(0,1),(0,4),(1,2),(1,7),(2,8),(3,4),(3,8),(5,6),(5,8),(5,9),(6,7),(7,8),(8,9)}

当它用邻接矩阵表示和邻接表表示时,分别写出从顶点V0出发按深度优先搜索遍历得到的顶点序列和按广度优先搜索遍历等到的顶点序列。

假定每个顶点邻接表中的结点是按顶点序号从大到小的次序链接的。

深度优先序列

广度优先序列

邻接矩阵表示时

 

 

邻接表表示时

 

 

 

四、           阅读算法,回答问题(每小题8分,共16分) 

1、假定从键盘上输入一批整数,依次为:

786345309134–1,请写出输出结果。

#include

#include

constintstackmaxsize=30;

typedefintelemtype;

structstack{

elemtypestack[stackmaxsize];

inttop;

};

#include“stack.h”

voidmain()

{

stacka;

initstack(a);

intx;

cin>>x;

while(x!

=-1){

push(a,x);

cin>>x;

}

while(!

stackempty(a))

cout<

cout<

}

该算法的输出结果为:

__________________________________________________________

 

2、阅读以下二叉树操作算法,指出该算法的功能。

TemplatevoidBinTree

unknown(BinTreeNode*t){

BinTreeNode*p=t,*temp;

if(p!

=NULL){

temp=p→leftchild;

p→leftchild=p→rightchild;

p→rightchild=temp;

unknown(p→leftchild);

undnown(p→rightchild);

}

}

该算法的功能是:

________________________________

 

五、           算法填空,在画有横线的地方填写合适的内容(10分)

对顺序存储的有序表进行二分查找的递归算法。

intBinsch(ElemTypeA[],intlow,inthigh,KeyTypeK)

{

if(low<=high)

{

intmid=1

if(K==A[mid].key)

returnmid;

elseif(K

return2

else

return3

}

else

return4

 

六、           编写算法(10分)

编写算法,将一个结点类型为Lnode的单链表按逆序链接,即若原单链表中存储元素的次序为a1,……an-1,an,则逆序链接后变为,an,an-1,……a1。

Voidcontrary(Lnode*&HL)

试题2答案

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

题号

1

2

3

4

答案

C

D

A

B

二、填空题(每空1分,共32分)

1:

集合、线性、树、图;

2:

数据描述、操作声名;

3:

(38,56,25,60,42,74);

4:

HL→next=NULL;HL=HL→next;

5:

前一个位置;n-1;

6:

S.stack[S.top];HS→data;

7:

531

8:

边结点、邻接点域、权域、链域;

9:

索引值域、开始位置域;

10:

10、3、3、B、I和J;

11:

O(log2n)、O(nlog2n);

12:

m、m-1

三、运算题(每小题6分,共24分)

1、

划分次序

划分结果

第一次

[382440]46[56809579]

第二次

24[3840]46[56809579]

第三次

24384046[56809579]

第四次

2438404656[809579]

第五次

243840465679[8095]

第六次

2438404656798095

2、

0123456789101112

78

 

15

03

 

57

45

20

31

 

23

36

12

 

查找成功的平均查找长度:

ASLSUCC=14/10=1.4

3、此二叉树的后序遍历结果是:

EDCBIHJGFA

4、

深度优先序列

广度优先序列

邻接矩阵表示时

0,1,2,8,3,4,5,6,7,9

0,1,4,2,7,3,8,6,5,9

邻接表表示时

0,4,3,8,9,5,6,7,1,2

0,4,1,3,7,2,8,6,9,5

四、阅读算法,回答问题(每小题8分,共16分)

1、 该算法的输入结果是:

349130456378

2、 该算法的功能是:

交换二叉树的左右子树的递归算法。

五、算法填空,在画有横线的地方填写合适的内容(10分)

1是:

(low+high)/2;

2是:

Binsch(A,low,mid–1,K);

3是:

Binsch(A,mid+1,high,K);

4是:

-1;

六、编写算法(10分)

根据编程情况,酌情给分。

{

Lnode*P=HL;

HL=NULL;

While(p!

=null)

{

Lnode*q=p;

P=p→next;

q→next=HL;

HL=q;

}

}

《数据结构》期末考试试题及答案3

一、单项选择题

1.对于一个算法,当输入非法数据时,也要能作出相应的处理,这种要求称为()。

(A)、正确性(B).可行性(C).健壮性(D).输入性

2.设S为C语言的语句,计算机执行下面算法时,算法的时间复杂度为()。

for(i=n-1;i>=0;i--)

for(j=0;j

(A)、n2(B).O(nlgn)(C).O(n)(D).O(n2)

3.折半查找法适用于()。

(A)、有序顺序表(B)、有序单链表

(C)、有序顺序表和有序单链表都可以(D)、无限制

4.顺序存储结构的优势是()。

(A)、利于插入操作(B)、利于删除操作

(C)、利于顺序访问(D)、利于随机访问

5.深度为k的完全二叉树,其叶子结点必在第()层上。

(A)、k-1(B)、k(C)、k-1和k(D)、1至k

6.具有60个结点的二叉树,其叶子结点有12个,则度过1的结点数为()

(A)、11(B)、13(C)、48(D)、37

7.图的Depth-FirstSearch(DFS)遍历思想实际上是二叉树()遍历方法的推广。

(A)、先序(B)、中序(C)、后序(D)、层序

8.在下列链队列Q中,元素a出队的操作序列为()

 

Q

(A)、p=Q.front->next;p->next=Q.front->next;

(B)、p=Q.front->next;Q.front->next=p->next;

(C)、p=Q.rear->next;p->next=Q.rear->next;

(D)、p=Q->next;Q->next=p->next;

9.Huffman树的带权路径长度WPL等于()

(A)、除根结点之外的所有结点权值之和(B)、所有结点权值之和

(C)、各叶子结点的带权路径长度之和(D)、根结点的值

10.线索二叉链表是利用()域存储后继结点的地址。

(A)、lchild(B)、data(C)、rchild(D)、root

二、填空题

1.逻辑结构决定了算法的,而存储结构决定了算法的。

2.栈和队列都是一种的线性表,栈的插入和删除只能在

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

当前位置:首页 > 工程科技 > 能源化工

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

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