数据结构复习题.docx

上传人:b****8 文档编号:27688541 上传时间:2023-07-04 格式:DOCX 页数:20 大小:70.39KB
下载 相关 举报
数据结构复习题.docx_第1页
第1页 / 共20页
数据结构复习题.docx_第2页
第2页 / 共20页
数据结构复习题.docx_第3页
第3页 / 共20页
数据结构复习题.docx_第4页
第4页 / 共20页
数据结构复习题.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

数据结构复习题.docx

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

数据结构复习题.docx

数据结构复习题

2017~2018学年度第2学期

《数据结构》复习提纲

一、单项选择题

题号

1

2

3

4

5

6

7

8

9

10

答案

C

A

D

C

A

B

A

B

C

D

题号

11

12

13

14

15

16

17

18

19

20

答案

A

A

D

A

A

D

C

B

A

B

1.在数据结构中,从逻辑上可以把数据结构分为_________两类。

A.动态结构与静态结构B.紧凑结构与非紧凑结构

C.线性结构与非线性结构D.内部结构与外部结构

2.链表不具有得特点就是_________。

A.可随机访问任一元素B.插入、删除不需要移动得元素

C.不必事先估计存储空间D.所需空间与线性表长度成正比

3.若线性表最常用得运算就是存取第i个元素及其前驱元素,则采用_________存储方式节省时间。

A.单链表B.双链表C.循环单链表D.顺序表

4.算法分析得目得就是_________。

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

C.分析算法得效率以求改进D.分析算法得易读性与文档性

5.若一个栈用数组data[1、、n]存储,初始栈顶指针top为0,则以下元素x进栈得操作正确得就是_________。

A.top++;data[top]=x;B.data[top]=x;top++;

C.top;data[top]=x;D.data[top]=x;top;

6.表达式a*(b+c)d得后缀表达式就是_________。

A.abcd*+B.abc+*dC.abc*+dD.+*abcd

7.递归函数f

(1)=1,f(n)=f(n1)+n(n>1)得递归出口就是_________。

A.f

(1)=1B.f

(1)=0C.f(0)=0D.f(n)=n

8.将递归算法转换成对应得非递归算法时,通常需要使用_________保存中间结果。

A.队列B.栈C.链表D.树

9.对稀疏矩阵采用压缩存储,其缺点之一就是_________。

A.无法判断矩阵有多少行、多少列

B.无法根据行、列号查找某个矩阵元素

C.无法根据行、列号直接计算矩阵元素得存储地址

D.使矩阵元素之间得逻辑关系更加复杂

10.一个n阶上三角矩阵a按行优先顺序压缩存放在一维数组b中,则b中得元素个数就是_________。

A.nB.n2C.n(n+1)/2D.n(n+1)/2+1

11.度为4,高度为h得树_________。

A.至少有h+3个结点B.最多有4h1个结点

C.最多有4h个结点D.至少有h+4个结点

12.用双亲存储结构表示树,其优点之一就是比较方便_________。

A.找指定结点得双亲结点B.找指定结点得孩子结点

C.找指定结点得兄弟结点D.判断某结点就是不就是叶子结点

13.设有13个值,用它们组成一棵哈夫曼树,则该哈夫曼树共有_________个结点。

A.13B.12C.26D.25

14.无向图得邻接矩阵就是一个_________。

A.对称矩阵B.零矩阵C.上三角矩阵D.对角矩阵

15.在图得广度优先遍历算法中用到一个队列,每个顶点最多进队_________次。

A.1B.2C.3D.不确定

16.在用Prim与Kruskal算法构造最小生成树时,前者更适合于_________。

A.有向图B.无向图C.稀疏图D.稠密图

17.有一个有序表R[1、、13]={1,3,9,12,32,41,45,62,75,77,82,95,100},当用二分查找法查找值为82得节点时,经过_________次比较后查找成功。

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

18.在采用分块查找时,若线性表中共有625个元素,查找每个元素得概率相同,假设采用顺序查找来确定结点所在得块,则每块分为_________个结点最佳。

A.9B.25C.6D.625

19.若R中有10000个元素,如果仅要求求出其中最大得10个元素,则采用_________方法最节省时间。

A.堆排序B.希尔排序C.快速排序D.基数排序

20.有一组序列(48,36,68,99,75,24,28,52)进行快速排序,要求结果从小到大排序,则进行一次划分之后得结果为_________。

A.[242836]48[52687599]B.[283624]48[75996852]

C.[366899]48[75242852]D.[283624]48[99756852]

二、填空题

题号

答案

题号

答案

题号

答案

1

问题规模

2

O(n)

3

假溢出

4

285

5

4

6

2h1

7

关键活动

8

无环图

9

RL

10

基数排序

1.在分析算法得时间复杂度时,通常认为算法得执行时间就是_________得函数。

2.求一个双链表长度得算法得时间复杂度为_________。

3.在实现顺序队得时候,通常将数组瞧成就是一个首尾相连得环,这样做得目得就是为了避免产生_____现象。

4.有如下递归过程:

voidreverse(intm)

{printf("%d",n%10);

if(n/10!

=0)

reverse(n/10);

}

调用语句reverse(582)得结果就是_________。

5.广义表(((a,b,(),c),d),e,((f),g))得深度就是_________。

6.在高度为h(h≥0)得二叉树中最多有_________个结点。

7.AOE网中从源点到汇点长度最长得路径称为关键路径,该路径上得活动称为_________。

8.可以进行拓扑排序得有向图一定就是_________。

9.输入序列为(20,35,30,……),构造一棵平衡二叉树,其中得第一次调整为_________型调整。

10.在排序过程中,任何情况下都不比较关键字大小得排序方法就是_________。

三、判断题

题号

1

2

3

4

5

6

7

8

9

10

答案

F

T

F

F

F

T

F

T

F

F

1.如果数据元素值发生改变,则数据得逻辑结构也随之改变。

()

2.在循环单链表中没有为空得指针域。

()

3.顺序栈中元素值得大小就是有序得。

()

4.任何递归算法都就是尾递归。

()

5.稀疏矩阵得特点就是矩阵中元素较少。

()

6.哈夫曼树中不存在度为1得结点。

()

7.完全二叉树中得每个结点或者没有孩子或者有两个孩子。

()

8.强连通分量就是有向图中得极大强连通子图。

()

9.哈希冲突就是指同一个关键字得记录对应多个不同得哈希地址。

()

10.任何情况下折半插入排序都优于直接插入排序。

()

四、问答题

1.设计一个算法,删除一个单链表L中元素值最大得结点(假设这样得结点唯一)。

voiddelmaxnode(LinkList*&L)

{LinkList*p,*pre,*maxp,*maxpre;

p=L>next;pre=L;

maxp=p;maxpre=pre;

while(p!

=NULL)

{

if(maxp>data

data)

{

maxp=p;

maxpre=pre;

}

pre=p;

p=p>next;

}

maxpre>next=maxp>next;

free(maxp);

}

2.已知一棵完全二叉树得第6层(设根为第1层)有8个叶子结点,则该完全二叉树得结点个数最多就是多少。

完全二叉树得叶子结点只能在最下两层,对于本题,结点最多得情况就是第6层为倒数第二层,即1~6层构成一个满二叉树,其结点总数为261=63。

第6层有25=32个结点,其中含8个叶子结点,另外有328=24个非叶子结点,它们中得每个结点都有两个孩子结点(均为第7层得叶子结点),计48个叶子结点,这样最多得结点个数=63+48=111。

3.一个有向图G得邻接表存储如下图所示,要求:

(1)给出该图得邻接矩阵存储结构;

(2)给出该图得所有强连通分量。

4.什么就是平衡二叉树?

输入关键字序列(16,3,7,11),给出构造一棵平衡二叉树得过程。

若一棵二叉排序树中每个结点得左右子树得高度最多相差1,则称此二叉树为平衡二叉树。

5.线性表有顺序表与链表两种存储方式,不同得排序方法适合不同得存储结构。

对于常见得内部排序方法,说明哪些更适合于顺序表,哪些更适合于链表?

哪些两者都适合?

更适合于顺序表得排序方法有希尔排序、折半插入排序、快速排序、堆排序与归并排序。

更适合于链表得排序方法就是基数排序

两者都适合得排序方法有直接插入排序、冒泡排序与简单排序。

五、算法设计题

用Floyd算法计算图中任意两个顶点之间得最短路径。

voidFloyd(MGraphg)

{

intA[MAXV][MAXV],path[MAXV][MAXV];

inti,j,k;

for(i=0;i

for(j=0;j

{

A[i][j]=g、edges[i][j];

path[i][j]=1;

}

for(k=0;k

{

for(i=0;i

for(j=0;j

if(A[i][j]>A[i][k]+A[k][j])

{

A[i][j]=A[i][k]+A[k][j];

path[i][j]=k;//修改最短路径

}

}

Dispath(A,path,g、n);//输出最短路径

}

一、选择题

1.研究数据结构就就是研究()。

A数据得逻辑结构

B数据得存储结构

C数据得逻辑与存储结构

D数据逻辑结构、存储结构及其数据在运算上得实现

2.链表不具有得特点就是()。

A可随机访问任一元素

B插入删除不需要移动元素

C不必事先估计存储空间

D所需空间与线性表长度成正比

3.设一个栈得输入序列为1,2,3,4,则借助一个栈所得到得输出序列不可能就是()。

A1,2,3,4

B2,4,3,1

C3,1,4,2

D3,2,4,1

4.设计一个判别表达式中左、右括号就是否配对出现得算法,采用()数据结构最佳。

A线性表得顺序存储结构

B栈

C线性表得链式存储结构

D队列

5.表达式a*(b+c)d得后缀表达式就是()。

Aabcd*+

Babc+*d

Cabc*+d

D+*abcd

6.队列得操作原则就是()。

A先进先出

B只能进行插入

C后进先出

D只能进行删除

7.判断带头结点得单链表llist为空得条件就是()。

Allist>link==llist

Bllist==NULL

Cllist>link==NULL

Dllist!

=NULL

8.一个具有20个结点得完全二叉树,其叶结点个数为()。

A9

B10

C11

D12

9.下列不属于内部排序得算法就是()。

A归并排序

B拓扑排序

C选择排序

D插入排序

10.在一棵度为3得树中,度为3得结点数为2,度为2得结点数为1,则叶结点数为()。

A4

B5

C6

D7

1

2

3

4

5

6

7

8

9

10

D

A

C

B

B

A

C

B

B

C

二、填空题

1.已知二叉树有50个叶子结点,则该二叉树得总结点数至少就是99。

2.在一个长度为n得线性表得第i个元素(1≦i≦n)之前插入一个元素时,插入函数需向后移动ni+1个元素。

3.若频繁地对线性表进行插入与删除操作,该线性表应采用链式存储结构。

4.若某线性表采用顺序存储结构,每个元素占2个存储单元,首地址为就是100,则第5个元素得地址就是108。

5.若结点y就是结点x得一棵子树得根,则x称作y得父结点。

6.一个串中包括得字符个数称作这个串得长度。

7.一棵树高为h得完全二叉树至少有2h1个结点,至多有2h1个结点。

8.算法得复杂性分析主要从算法得时间复杂性与空间复杂性进行考虑。

9.数据结构主要根据逻辑结构与存储结构进行分类。

10.图得遍历分为两种类型:

深度优先遍历与广度优先遍历。

三、算法分析与设计题

1.在链表中,若已知指针p,要在指针p所指得结点之后插入数据域值相继为a与b得两个结点,已知指针s指向结点a。

写出实现上述插入操作得关键语句。

s>next>next=p>next;

p>next=s;

2.如图所示得一棵二叉树,写出对此树得先根序列、中根序列与后根序列。

先根序列:

ABDEFC中根序列:

DEFBAC后根序列:

FEDBCA

3.以{5,6,7,8,9,10,15,18,22}作为叶结点得权值来构造一棵Huffman树。

4.请设计一个算法,求出循环表中结点得个数。

intCountnode(ClinkListclist){

intn;

PNodep;

p=clist>link;

n=0;

while(p!

=clist){

n++;

p=p>link;}

return(++n);}

一、填空题

1.设有一个8阶得对称矩阵A,采用压缩存储方式,按行优先顺序存储方式。

设a11为第一个元素,其存储地址为1,假设每个元素占用1个存储单元,则a64得存储地址为19。

2.若频繁地对线性表进行插入与删除操作,该线性表应采用链式存储结构。

3.算法得5个重要特征就是有穷性、确定性、可行性、输入与输出。

4、每次从无序子表中取出一个元素,然后把它插入到有序子表得适当位置,则此种排序方法叫做直接插入排序。

5.设二维数组A[1、、M,1、、N](即M行N列)按行优先顺序存储在一维数组B[1、、M*N]中,则二维数组元素A[i,j]在一维数组B中得下标为(i1)*N+j。

6.在序列(2,5,8,11,15,16,22,24,27,35,50)中采用折半查找(二分查找)方法查找元素24,需要进行4次元素之间得比较。

7.一棵树高为h得完全二叉树至少有2h1个结点,至多有2h1个结点。

8.由权值分别为11,8,6,2,5得叶结点生成一棵Huffman树,它得带权路径长度为71。

9.对关键字序列(52,80,63,44,48,91)一趟快速排序后得结果(48,44,52,63,80,91)。

二、单项选择题

题号

1

2

3

4

5

6

7

8

9

10

答案

D

A

A

A

C

B

D

B

A

C

题号

11

12

13

14

15

16

17

18

19

20

答案

C

A

A

D

D

C

D

A

A

C

1、数据结构就是指。

A、一种数据类型

B、数据得存储结构

C、一组性质相同得数据元素得集合

D、相互之间存在一种或多种特定关系得数据元素得集合

2、以下算法得时间复杂度为。

voidfun(intn)

{inti=1;

while(i<=n)

i++;

}

A、O(n)B、O

C、O(nlog2n)D、O(log2n)

3、在一个长度为n得有序顺序表中删除元素值为x得元素时,在查找元素x时采用二分查找,此时得时间复杂度为。

A、O(n)B、O(nlog2n)

C、O(n2)D、O

4、在一个带头结点得循环单链表L中,删除元素值为x得结点,算法得时间复杂度为。

A、O(n)B、O

C、O(nlog2n)D、O(n2)

5、若一个栈采用数组s[0、、n1]存放其元素,初始时栈顶指针为n,则以下元素x进栈得正确操作就是。

A、top++;s[top]=x;B、s[top]=x;top++;

C、top;s[top]=x;B、s[top]=x;top;

6、中缀表达式“2*(3+4)1”得后缀表达式就是,其中#表示一个数值得结束。

A、2#3#4#1#*+B、2#3#4#+*1#

C、2#3#4#*+1#D、+*2#3#4#1#

7、设环形队列中数组得下标为0~N1,其队头、队尾指针分别为front与rear(front指向队列中队头元素得前一个位置,rear指向队尾元素得位置),则其元素个数为。

A、rearfrontB、rearfront1

C、(rearfront)%N+1D、(rearfront+N)%N

8、若用一个大小为6得数组来实现环形队列,队头指针front指向队列中队头元素得前一个位置,队尾指针rear指向队尾元素得位置。

若当前rear与front得值分别为0与3,当从队列中删除一个元素,再加入两个元素后,rear与front得值分别为。

A、1与5B、2与4

C、4与2D、5与1

9、一棵深度为h(h≥1)得完全二叉树至少有个结点。

A、2h1B、2h

C、2h+1D、2h1+1

10、一棵含有n个结点得线索二叉树中,其线索个数为。

A、2nB、n1

C、n+1D、n

11、设一棵哈夫曼树中有1999个结点,该哈夫曼树用于对个字符进行编码。

A、999B、998

C、1000D、1001

12、一个含有n个顶点得无向连通图采用邻接矩阵存储,则该矩阵一定就是。

A、对称矩阵B、非对称矩阵

C、稀疏矩阵D、稠密矩阵

13、设无向连通图有n个顶点e条边,若满足,则图中一定有回路。

A、e≥nB、e

C、e=n1D、2e≥n

14、对于AOE网得关键路径,以下叙述就是正确得。

A、任何一个关键活动提前完成,则整个工程一定会提前完成

B、完成整个工程得最短时间就是从源点到汇点得最短路径长度

C、一个AOE网得关键路径一定就是唯一得

D、任何一个活动持续时间得改变可能会影响关键路径得改变

15、设有100个元素得有序表,用折半查找时,不成功时最大得比较次数就是。

A、25B、50

C、10D、7

16、在一棵m阶B树中删除一个关键字会引起合并,则该结点原有个关键字。

A、1B、⎡m/2⎤

C、⎡m/2⎤1D、⎡m/2⎤+1

17、哈希查找方法一般适用于情况下得查找。

A、查找表为链表

B、查找表为有序表

C、关键字集合比地址集合大得多

D、关键字集合与地址集合之间存在着某种对应关系。

18、对含有n个元素得顺序表采用直接插入排序方法进行排序,在最好情况下算法得时间复杂度为。

A、O(n)B、O(nlog2n)

C、O(n2)D、O

19、用某种排序方法对数据序列{24,88,21,48,15,27,69,35,20}进行递增排序,元素序列得变化情况如下:

(1){24,88,21,48,15,27,69,35,20}

(2){20,15,21,24,48,27,69,35,88}

(3){15,20,21,24,35,27,48,69,88}

(4){15,20,21,24,27,35,48,69,88}

则所采用得排序方法就是。

A、快速排序B、简单选择排序

C、直接插入排序D、归并排序

20、以下序列就是堆得就是。

A、{75,65,30,15,25,45,20,10}B、{75,65,45,10,30,25,20,15}

C、{75,45,65,30,15,25,20,10}D、{75,45,65,10,25,30,20,15}

三、问答题

1、有一棵二叉排序树按先序遍历得到得序列为:

(12,5,2,8,6,10,16,15,18,20)。

回答以下问题:

(1)画出该二叉排序树。

(2)给出该二叉排序树得中序遍历序列。

(3)求在等概率下得查找成功与不成功情况下得平均查找长度。

答:

(1)先序遍历得到得序列为:

(12,5,2,8,6,10,16,15,18,20),中序序列就是一个有序序列,所以为:

(2,5,6,8,10,12,15,16,18,20),由先序序列与中序序列可以构造出对应得二叉树,如图所示。

(2)中序遍历序列为:

2,5,6,8,10,12,15,16,18,20。

(3)ASL成功=(1×1+2×2+4×3+3×4)/10=29/10。

ASL不成功=(5×3+6×4)/11=39/11。

2、有人提出这样得一种从图G中顶点u开始构造最小生成树得方法:

假设G=(V,E)就是一个具有n个顶点得带权连通无向图,T=(U,TE)就是G得最小生成树,其中U就是T得顶点集,TE就是T得边集,则由G构造从起始顶点u出发得最小生成树T得步骤如下:

(1)初始化U={u}。

以u到其她顶点得所有边为候选边。

(2)重复以下步骤n1次,使得其她n1个顶点被加入到U中。

从候选边中挑选权值最小得边加入到TE,设该边在VU中得顶点就是v,将v加入U中。

考查顶点v,将v与VU顶点集中得所有边作为新得候选边。

若此方法求得得T就是最小生成树,请予以证明。

若不能求得最小边,请举出反例。

答:

此方法不能求得最小生成树。

例如,对于如图(a)所示得带权连通无向图,按照上述方法从顶点0开始求得得结果为(b)所示得树,显然它不就是最小生成树,正确得最小生成树如图(c)所示。

在有些情况下,上述方法无法求得结果,例如对于如图(d)所示得带权连通无向图,从顶点0出发,找到顶点1(边(0,1)),从顶点1出发,找到顶点3(边(1,3)),再从顶点3出发,找到顶点0(边(3,0)),这样构成回路,就不能求得最小生成树了。

求最小生成树得反例图

3、如果对含有n(n>1)个元素得线性表得运算只有4种:

删除第一个元素;删除最后一个元素;在第一个元素前面插入新元素;在最后一个元素得后

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

当前位置:首页 > 总结汇报 > 学习总结

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

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