数据结构复习题及答案 2.docx

上传人:b****3 文档编号:4416267 上传时间:2022-12-01 格式:DOCX 页数:27 大小:91.41KB
下载 相关 举报
数据结构复习题及答案 2.docx_第1页
第1页 / 共27页
数据结构复习题及答案 2.docx_第2页
第2页 / 共27页
数据结构复习题及答案 2.docx_第3页
第3页 / 共27页
数据结构复习题及答案 2.docx_第4页
第4页 / 共27页
数据结构复习题及答案 2.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

数据结构复习题及答案 2.docx

《数据结构复习题及答案 2.docx》由会员分享,可在线阅读,更多相关《数据结构复习题及答案 2.docx(27页珍藏版)》请在冰豆网上搜索。

数据结构复习题及答案 2.docx

数据结构复习题及答案2

《数据结构》模拟试题一

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

1.    对一个算法的评价,不包括如下()方面的内容。

A.健壮性和可读性B.并行性C.正确性D.时空复杂度

二、填空题(每题6分,共24分)

1.       数据结构是指数据及其相互之间的______________。

当结点之间存在M对N(M:

N)的联系时,称这种结构为_____________________。

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

1.       已知一个65稀疏矩阵如下所示,

 

试题一参考答案

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

1.B2.A3.B4.C5.D6.B7.D8.A9.D10.C

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

1.        联系图(或图结构)

2.        尾首

3.        top==0

4.        O

(1)O(n)

5.        12844108

6.        33

7.        

6

5

5

1

5

1

3

2

-1

4

5

-2

5

1

5

6

3

7

图7

有序n-1

8.        有序序列后缀表达式(或逆波兰式)

9.        2nn-1n+1

10.    2i+12i+2(i-1)/2

11.    开放定址法链接法

12.    快速归并

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

1.        

(1)((1,5,1),(3,2,-1),(4,5,-2),(5,1,5),(6,3,7))(3分)

(2)三元组线性表的顺序存储表示如图7示。

2.        

如图8所示。

3.        DFS:

BFS:

4.        拓朴排序为:

4365721

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

1.        

(1)判断n是否是素数(或质数)

(2)O(

2.        功能为:

从初始点vi出发广度优先搜索由邻接表GL所表示的图。

五、算法填空(8分)

(low+high)/2high=mid-1low=mid+1

六、                     编写算法(8分)

ElemTypeDeleFront(LNode*&HL)

{

if(HL==NULL){

cerr<<"空表"<

exit

(1);

}

LNode*p=HL;

HL=HL->next;

ElemTypetemp=p->data;

deletep;

returntemp;

}

 

《数据结构》模拟试题二

一、单选题

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

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

B.都是先进后出

C.都是先进先出

D.没有共同点

2、填空题

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

_________、_________、_________和_________。

 三、运算题

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

《数据结构》模拟试题二参考答案

一、单选题(每题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

4

4

4

4

4

2

2

2

5

5

2

8

5

2

8

3

4

5

2

8

4

3

 

 

 

 

 

 

 

 

 

 

图12

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

1.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

 

 

《数据结构》模拟试题三

一、单选题

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

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

二、填空题

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

 

三、运算题

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

 《数据结构》模拟试题三(答案)

一、单选题

题号

1

2

3

4

答案

C

D

A

B

二、填空题

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

3、运算题

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、1、 该算法的输入结果是:

349130456378

2、2、 该算法的功能是:

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

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

1、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;

}

}

《数据结构》模拟试题四

1、项选择题

1.算法指的是()

A.计算机程序B.解决问题的计算方法

C.排序算法D.解决问题的有限运算序列

 二、填空题

16.数据的逻辑结构是从逻辑关系上描述数据,它与数据的无关,是独立于计算机的。

3、解答题

26.画出下列广义表的共享结构图形表示

P=(((z),(x,y)),((x,y),x),(z))

《数据结构》模拟试题四参考答案

一、           单项选择题(本大题共15小题,每小题2分,共30分)

1.D2.B3.C4.B5.D6.A7.C8,D9,A10.C11.D12.C13.D14.C15.B

二、填空题(本大题共10小题,每小题2分,共20分)

16.存储(或存储结构)17.p->next->next18.进栈和退栈19.1220.a4,821.38422.abefcdg

23.快速排序、堆排序、希尔排序

24.225.多关键字

三、解答题(本大题共4小题,每小题5分,共20分)

26.

 

 

 

 

 

图1图2

27.

 

 

 

 

28.该图的图形为:

 

 

 

 

 

 

深度优先遍历序列为:

abdce

广度优先遍历序列为:

abedc

29.(1)对关键字35、20、33和48进行查找的比较次数为3、2、1、1;

(2)平均查找长度

四、算法阅读题(本大题共4小题,每小题5分,共20分)

30.①S1=S1->next

②s2=s2->next

③s2(或s2!

=NULL或s2&&!

s1)

④s1(或s1!

=NULL或s1&&!

s2)

⑤return0

31.

(1)查询链表的尾结点

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

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

32.①(i+1)%2(或1-i)

②Q->rear[i]

③(Q->rear[i]+)%Maxsize

33.

(1)Leafhead

F

 

 

H

 

 

G

 

 

D

(2)中序遍历二叉树,按遍历序列中叶子结点数据域的值构建一个以Leafhead为头指针的逆序单链表(或按二叉树中叶子结点数据自右至左链接成一个链表)。

 

五、算法设计题(本题共10分)

34.

(1)该函数的功能是:

调整整数数组a[]中的元素并返回分界值i,使所有<x的元素均落在a[1..i]上,使所有≥x的元素均落在a[i+1..h]上。

(2)intf(intb[],intn)或intf(intb[],intn)

{{

intp,q;intp,q;

p=arrange(b,0,n-1,0);p=arrange(b,0,n-1,1);

q=arrange(b,p+1,n-1,1);q=arrange(b,0,p,0);

returnq-p;returnp-q;

《数据结构》模拟试题五

一、选择题(20分)

1.组成数据的基本单位是()。

(A)数据项(B)数据类型(C)数据元素(D)数据变量

 二、填空题(30分)

1.       设顺序循环队列Q[0:

m-1]的队头指针和队尾指针分别为F和R,其中队头指针F指向当前队头元素的前一个位置,队尾指针R指向当前队尾元素所在的位置,则出队列的语句为F=____________;。

三、应用题(30分)

1.设完全二叉树的顺序存储结构中存储数据ABCDE,要求给出该二叉树的链式存储结构并给出该二叉树的前序、中序和后序遍历序列。

《数据结构》模拟试题五参考答案

 一、选择题

1.C2.C3.D4.C5.A

6.C7.C8.B9.B10.B

二、填空题

1.       (F+1)%m

2.       O(n),O(n)

3.       2n,n+1

4.       s->next=p->next;s->next=s

5.       n,2e

6.       m=2e

7.       CBA

8.       4,16

9.       i-j+1,0

10.   n-1

三、应用题

1.       链式存储结构略,前序ABDEC,中序DBEAC,后序DEBCA。

2.       哈夫曼树略,WPL=78

3.       (18,5,16,19,21,23),(5,16,21,19,18,23)

4.       线性探测:

链地址法:

5.       深度:

125364,广度:

123456,最小生成树T的边集为E={(1,4),(1,3),(3,5),(5,6),(5,6)}

四、算法设计题

1.       设计判断单链表中结点是否关于中心对称算法。

typedefstruct{ints[100];inttop;}sqstack;

intlklistsymmetry(lklist*head)

{

sqstackstack;stack.top=-1;lklist*p;

for(p=head;p!

=0;p=p->next){stack.top++;stack.s[stack.top]=p->data;}

for(p=head;p!

=0;p=p->next)if(p->data==stack.s[stack.top])stack.top=stack.top-1;elsereturn(0);

return

(1);

}

2.       设计在链式存储结构上建立一棵二叉树的算法。

typedefchardatatype;

typedefstructnode{datatypedata;structnode*lchild,*rchild;}bitree;

voidcreatebitree(bitree*&bt)

{

charch;scanf("%c",&ch);

if(ch=='#'){bt=0;return;}

bt=(bitree*)malloc(sizeof(bitree));bt->data=ch;

createbitree(bt->lchild);createbitree(bt->rchild);

}

3.       设计判断一棵二叉树是否是二叉排序树的算法。

intminnum=-32768,flag=1;

typedefstructnode{intkey;structnode*lchild,*rchild;}bitree;

voidinorder(bitree*bt)

{

if(bt!

=0)

{inorder(bt->lchild);if(minnum>bt->key)flag=0;minnum=bt->key;inorder(bt->rchild);}

}

 《数据结构》模拟试题六

 

一、选择题(24分)

1.下面关于线性表的叙述错误的是()。

(A)线性表采用顺序存储必须占用一片连续的存储空间

(B)线性表采用链式存储不必占用一片连续的存储空间

(C)线性表采用链式存储便于插入和删除操作的实现

(D)线性表采用顺序存储便于插入和删除操作的实现

 二、填空题(24分)

1.        为了能有效地应用HASH查找技术,必须解决的两个问题是____________________和__________________________。

三、应用题(36分)

1. 设一组初始记录关键字序列为(45,80,48,40,22,78),则分别给出第4趟简单选择排序和第4趟直接插入排序后的结果。

《数据结构》模拟试题六参考答案

 

一、选择题

1.D2.B3.C4.A5.A6.C7.B8.C

 二、填空题

1.       构造一个好的HASH函数,确定解决冲突的方法

2.       stack.top++,stack.s[stack.top]=x

3.       有序

4.       O(n2),O(nlog2n)

5.       N0-1,2N0+N1

6.       d/2

7.       (31,38,54,56,75,80,55,63)

8.       (1,3,4,2),(1,3,2,4)

 三、应用题

1.       (22,40,45,48,80,78),(40,45,48,80,22,78)

2.       q->llink=p;q->rlink=p->rlink;p->rlink->llink=q;p->rlink=q;

3.       2,ASL=91*1+2*2+3*4+4*2)=25/9

4.       树的链式存储结构略,二叉树略

5.       E={(1,3),(1,2),(3,5),(5,6),(6,4)}

6.       略

 四、算法设计题

1.           设有一组初始记录关键字序列(K1,K2,…,Kn),要求设计一个算法能够在O(n)的时间复杂度内将线性表划分成两部分,其中左半部分的每个关键字均小于Ki,右半部分的每个关键字均大于等于Ki。

voidquickpass(intr[],ints,intt)

{

inti=s,j=t,x=r[s];

while(i

while(ix)j=j-1;if(i

while(i

}

r[i]=x;

}

2.           设有两个集合A和集合B,要求设计生成集合C=A∩B的算法,其中集合A、B和C用链式存储结构表示。

typedefstructnode{intdata;structnode*next;}lklist;

voidintersection(lklist*ha,lklist*hb,lklist*&hc)

{

lklist*p,*q,*t;

for(p=ha,hc=0;p!

=0;p=p->next)

{for(q=hb;q!

=0;q=q->next)if(q->data==p->data)break;

if(q!

=0){t=(lklist*)malloc(sizeof(lklist));t->data=p->data;t->next=hc;hc=t;}

}

}

《数据结构》模拟试题七

 

一、选择题(30分)

1.设某数据结构的二元组形式表示为A=(D,R),D={01,02,03,04,05,06,07,08,09},R={r},r={<01,02>,<01,03>,<01,04>,<02,05>,<02,06>,<03,07>,<03,08>,<03,09>},则数据结构A是()。

(A)线性结构(B)树型结构(C)物理结构(D)图型结构

二、填空殖(48分,其中最后两小题各6分)

1.        数据的物理结构主要包括_____________和______________两种情况。

三、算法设计题(22分)

1. 设计在单链表中删除值相同的多余结点的算法。

《数据结构》模拟试题七参考答案

 

一、选择题

1.B2.B3.A4.A5.A

6.B7.D8.C9.B10.D

第3小题分析:

首先用指针变量q指向结点A的后继结点B,然后将结点B的值复制到结点A中,最后删除结点B。

第9小题分析:

9快速排序、归并排序和插入排序必须等到整个排序结束后才能够求出最小的10个数,而堆排序只需要在初始堆的基础上再进行10次筛选即可,每次筛选的时间复杂度为O(log2n)。

 二、填空题

1.       顺序存储结构、链式存储结构

2.       9,501

3.       5

4.       出度,入度

5.       0

6.       e=d

7.       中序

8.       7

9.       O

(1)

10.    i/2,2i+1

11.    (5,16,71,23,72,94,73)

12.    (1,4,3,2)

13.    j+1,hashtable[j].key==k

14.    return(t),t=t->rchild

第8小题分析:

二分查找的过程可以用一棵二叉树来描述,该二叉树称为二叉判定树。

在有序表上进行二分查找时的查找长度不超过二叉判定树的高度1+log2n。

 三、算法设计题

1.       设计在单链表中删除值相同的多余结点的算法。

typedefintdatatype;

typedefstructnode{datatypedata;structnode*next;}lklist;

voiddelredundant(lklist*&head)

{

lklist*p,*q,*s;

for(p=head;p!

=0;p=p->next)

{

for(q=p->next,s=q;q!

=0;)

if(q->data==p->data){

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

当前位置:首页 > 高中教育 > 语文

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

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