杭电《数据结构》习题答案.docx

上传人:b****7 文档编号:8700939 上传时间:2023-02-01 格式:DOCX 页数:19 大小:132.23KB
下载 相关 举报
杭电《数据结构》习题答案.docx_第1页
第1页 / 共19页
杭电《数据结构》习题答案.docx_第2页
第2页 / 共19页
杭电《数据结构》习题答案.docx_第3页
第3页 / 共19页
杭电《数据结构》习题答案.docx_第4页
第4页 / 共19页
杭电《数据结构》习题答案.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

杭电《数据结构》习题答案.docx

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

杭电《数据结构》习题答案.docx

杭电《数据结构》习题答案

《软件技术基础》之数据结构习题

)选择题

1.下面关于线性表的叙述中,正确的是(D)

A)线性表的每个元素都有一个直接前驱和直接后继

B)线性表中至少要有一个元素

C)线性表中的元素必须按递增或递减的顺序排列

D)除第一个元素和最后一个元素外,其余每个元素有且仅有一个直接前驱和直接后继

2.下面关于线性表的叙述中,错误的是(B)

A)采用顺序存储的线性表必须占用一片连续的存储单元

B)采用顺序存储的线性表便于进行插入和删除操作

C)采用链接存储的线性表,不必占用一片连续的存储单元

D)采用链接存储的线性表,便于进行插入和删除操作

3.设有栈S和队列Q,初始状态皆为空,元素ai、a?

、a3、a4、a5、a6依次入栈,出栈的

元素依次进入队列Q,若6个元素的出栈序列为:

a2、a4、出、比、氏、ai,则栈的

容量至少是(C)

A)6C)3

B)4D)2

4.设在栈中,由顶向下已存放元素c、b、a,在第4个元素d入栈前,栈中元素可以出栈,

试问d入栈后,不可能的出栈序列是(C)

A)dcbaC)cadb

B)cbdaD)cdba

5.在一棵二叉树的先序遍历、中序遍历、后序遍历序列中,所有叶节点的先后顺序(B)

A)都不相同C)先序和中序相同,后序不同

B)完全相同D)中序和后序相同,先序不同

6.设二叉树根结点的层次为0,—棵高度为h的满二叉树的结点个数是(C)

A)2hC)2h-1

h-1h+1A

B)2D)2-1

7.已知一棵二叉树的前序序列为ABDGCFK,中序序列为DGBAFCK,则结点的后序序

列为(B)

8.

9.

10.

A)ACFKDBGC)KCFAGDB

B)GDBFKCAD)ABCDFKG

欲得到二叉搜索树(BST)各结点值的递增序列,试问应该采用何种遍历方法(

A)先序遍历C)后序遍历

B)中序遍历D)层次遍历

与数据元素本身的形式、内容、相对位置、个数无关的是数据的(

A)存储结构C)逻辑结构

B)存储形式D)运算实现

有一棵非空的二叉树(第0层为根结点),其第i层上至多有(A

A)2B)2i-1

)个节点

C)

D)i

11.双向链表结点结构如下:

LLink

Data

RLink

其中:

LLink是指向前趋结点的指针域,Data是存放数据元素的数据域,RLink是指

点P的前趋,插入到此双向链表中。

能正确完成要求的算法段是

B)

A)QtLLink=P~LLink;

QtRLink=P;

PtLLink=Q;

Ptllinktrlink=Q

C)Qtllink=PtLLink;

QtRLink=P;

PtllinktRLink=Q;

PtLLink=Q

12.若某线性表中最常用的操作是取第存储方式最节省时间

A)顺序表

B)单链表

13.设数组Data[0…m]作为循环队列则执行出队操作的语句为(D

A)front:

=front+1

B)front:

=(front+1)modm

(C)

PtLLink=Q;

QtRLink=P;

Ptllinktrlink=Q;

QtLLink=PtLLink

i个元素和第i个元素的前趋元素,则采用(A)

C)双链表

D)单循环链表

SQ的存储空间,front为队头指针,rear为队尾指针,)

C)rear:

=(rear+1)modm

D)front:

=(front+1)mod(m+1)

向后继结点的指针域。

下面给出的算法段是要把一个新结点Q作为非空双向链表的结

a25

a1

front

b)队列满

c)队列空

a)—般情况

14.用数组A[0…m-1]存放循环队列的元素值,若其头尾指针分别为front和rear,则循环

队列中当前元素的个数为(A)

A)(rear-front+m)modm

B)(rear-front+1)modm

C)(rear-front-1+m)modm

D)(rear-front)modm

15.以下有关数据结构的叙述,正确的是(C)

A)线性表的线性存储结构优于链式存储结构

B)二叉树的第i层有2it个结点,深度为k的二叉树上有2k「1个结点

C)严格地讲二维数组不是线性表,但可以看成是线性表在下述含义上的扩展:

二维数

组是其数据元素为线性表的线性表

D)栈的操作方式是先进先出

16.二维数组M[i,j]的元素是4个字符(每个字符占用一个存储单元)组成的串,行下标

的范围从0到4,列下标j的范围从0到5。

M按行存储时的元素M[3,5]的起始地址与

M按列存储时的元素(B)的起始地址相同

A)M[2,4]C)M[3,5]

B)M[3,4]D)M[4,4]

M[0:

4,0:

5]

A+i*6+j=A+3*6+5

A+j*5+i

3*6+5=j*5+ii,jUN,

17.

B)数据结构最佳

设计一个判别表达式中左右括号是否配对出现的算法,采用(

A)线性表的顺序存储结构

B)栈

18.深度为6(根的层次为1)的二叉树至多有结点

A)31

B)32

19.将含有100个结点的完全二叉树从根这一层开始,点的编号为1。

编号为71的双亲的编号为(

A)34

B)35

20.如图所示二叉树的中序遍历序列是(B)

A)abcdgef

C)队列

D)线性表的链式存储结构

C)

C)63

D)64

每层从左到右依次对结点编号,

B)

C)36

D)无法确定

C)dbaefcg

D)defbagc

根结

B)dfebagc

21.已知某二叉树的后序遍历序列是dabec,中序遍历序列是debac,则它的前序遍历序列

为(D)

A)acbedC)deabc

B)decabD)cedba

22.如果T2是由树T转换而来的二叉树,那么T中结点的前序就是T2中结点(A)

23.

24.

25.

26.

27.

28.

29.

30.

31.

32.

33.

34.

35.

A)刖序C)后序

B)中序D)层次序

如果T2是由树T转换而来的二叉树,那么T中结点的后序就是T2中结点(B)

A)前序C)后序

B)中序D)层次序

若某二叉树的前序遍历结点访问顺序是abdgcefh,中序遍历的结点访问顺序是

bgdaechf,则其后序遍历的结点访问顺序是(D

A)bdgcefhaC)

B)gdbecfhaD)

bdgechfagdbehfca

A)数据结构

在计算递归函数时,如不使用递归过程,则一般情况下必须借助于(

A)栈C)双向队列

B)树D)广义表

二叉树的前序遍历序列中,任意一个结点均处在其子女结点的前面。

这种说法(

A)正确B)错误

由于二叉树中每个结点的度最大为2,所以二叉树时一种特殊的树。

这种说法

A)正确B)错误

小于其右

二叉树为二叉排序树的充分必要条件是其任一结点的值均大于其左孩子的值,

孩子的值。

这种说法(B)

A)正确B)错误

设二叉树根结点的层次为0,—棵高度为h的满二叉树中的结点个数是(C

hh

A)2C)2-1

h-1h+1/

B)2D)2-1

含N个顶点的联通图中任意一条简单路径,其长度不可能超过(

A)1C)N—1

B)N/2D)N

实现任意二叉树的后序遍历的非递归算法而不使用栈结构,最佳方案是二叉树采用

(C)存储结构

A)二叉链表

B)

C)三叉链表

D)顺序存储结构

具有65个结点的完全二叉树深度为(

A)8

B)7

以二叉链表作为二叉树的存储结构,在具有

个数为(C=2N-(N-1)=N+1)

A)2n-1

B)n-1

在一非空二叉树的中序遍历序列中,

A)只有右子树上的所有结点

B)只有右子树上的部分结点已知一棵二叉树的前序遍历结果为结果为(A)

A)CBEFDA

B)FEDCBA

)(根的层次号为1)

C)6

D)5

n个结点的二叉链表中(n>0),

C)

D)

根结点的右边(

C)

D)

n+1

空链域的

2n+1

A)

只有左子树上的所有结点

只有左子树上的部分结点

ABCDEF,中序遍历结果为CBAEDF,则后序遍历

C)CBEDFA

D)不定

广义表存储结构

36.一棵满二叉树共有n个结点,其中m个为树叶,则(B)

N=2h-1=2h-12-仁m2-1,m=2h-1

A)n=m+1C)n=2m

D)n=2xm

B)m=(n+1)/2

37.设矩阵A(aj,E,j00)的元素满足:

raj用(i矛1O,j010)

Laj=0(i

现将A的所有非0元素以行序存放在首地址为2000的存储区域中,每个元素占4个单

元,则元素[9,5]的首地址为(A)

A)2160C)2336

B)2164D)2340

38.设高度为h的二叉树上只有度为0和2的结点,则此类二叉树中所含的结点数至少为

E)2h-1G)2(h+1)-1

F)2h-1H)2h+1

V1出发,所得到的顶点序列是(B)

c)V1V3V2V4V5

d)V1V4V3V5V2

V1出发,所得到的顶点序列是(C)

c)V1V3V2V4V5

d)V1V4V3V2V5

(B),至多为(E)

A)2hC)2h+1

B)2h-1D)h-1

39.已知一有向图的邻接表出表存储结构如下:

(1)、根据有向图的深度优先遍历算法,从顶点

a)V1V2V3V5V4

b)V1V3V4V5V2

(2)、根据有向图的广度优先遍历算法,从顶点

a)V1V2V3V4V5

b)V1V2V3V5V4

1

3

2

a

4

A

1

2

A

3

«

4

*

—■►

5

A

4

A

5

2

4

A

(3)、能否根据邻接表画出该有向图?

为什么?

40.邻接表存储结构下图的深度优先遍历算法结构类似于二叉树的(A)

A)先序遍历C)后序遍历

B)中序遍历D)按层遍历

41.若某链表中最常用的操作是在最后一个元素之后插入一个元素和删除最后一个元素,采用(D)存储方式最节省运算时间。

A)

C)单循环链表

D)带头结点的双循环链表

C)

单链表

B)双链表

42.下面关于数据结构的叙述中,正确的叙述是(

A)顺序存储方式的优点是存储密度大,且插入、删除运算效率高

B)链表中的每一个结点都包含恰好一个指针

C)将一棵树转换成为二叉树后,根结点没有右子树

A=[aj]如下:

ai2

43.一个n冶的带状矩阵

aii

an-i

ann-1ann

将带状区域的元素aij

aij在B中的存储位置是(

A)i+2j-1

B)2i+j-2

44.设树T的度为4,其中度为子结点的个数是(D

J

(|i—j|耳)按行序为主序存储在一维数组B[1..3n-2]中,元素

B)

C)3i-j+1

D)i+j+2

1、2、3和4的结点的个数分别为4、2、1、1,贝UT中叶)

X+4+2+1+仁节点总数=1X4+2X2+3X1+4X1=》X=8

A)5C)7

B)6D)8

45.(X)对树中的一个结点x,在先根序列的序号为pre(x),在后跟序列中的序号为post(y)。

若树中结点x是结点x和结点y的祖先,下列四个条件哪个条件正确()

A)

pre(x)

禾口post(x)

B)

pre(x)

禾口post(x)>post(y)

C)

pre(x)>pre(y)

禾口post(x)

D)

pre(x)>pre(y)

禾口post(x)>post(y)

46.设有向图G有n个顶点,它的邻接矩阵为

A,G中第i个顶点Vi的度为(C)

n

A)、A[i,i]

i=1

n

B)A[i,j]

i,j#

n

C)'(A[i,j]A[j,i])

jT

nn

D)、A[i,j]+'A[i,j]

iTjw

47.二叉树的先序遍历和中序遍历如下:

先序遍历:

EFHIGJK

中序遍历:

HFIEJKG

该二叉树根的右子树的根是(C)

A)EC)G

B)FD)H

)填空题

1.数据结构是相互之间存在一种或多种特定关系的数据元素的集合,它包括三方面的内

容,分别是数据的逻辑结构、物理结构、算法结构。

2.从逻辑关系上讲,数据结构主要分为两大类,它们是线性结构、非线性结构<

3.数据结构的四种基本的存储方法是顺序存储、链式存储、索引存储、散列存储。

4.数据的基本单位是数据元素。

5.在单链表中,指针P所指结点为最后一个结点的条件是(!

P)。

6.设一个链栈的栈顶指针为Top,栈中结点两个字段分别为info和next,其中next是指示

后继结点的指针,栈空的条件是(!

TOP)。

如果栈不空,则退栈操作为:

p:

=Top;

Top:

=Top->Next;

dispose(p);

7.设r指向单链表的最后一个结点,要在最后一个结点之后插入指针s所指的结点,需执

行的三条语句是:

r->Next=s:

r:

=s;

rtnext:

=nil;

8.数组通常只有两种运算:

读和写(给定下标,修改相应的元素),这决定了数组通

常采用顺序表来实现存储。

9.多维数组的两种存储方式是按行序存储和按列序存储。

10.栈和队列均可视为特殊的线性表,所不同的在于他们的添加和删除运算的限

定不一样。

11.图的主要存储结构有两种,分别为相邻矩阵和邻接表。

12.将一棵树转化成二叉树的步骤是

13.从概念上讲,树和二叉树是两种不同的数据结构,将树转化成二叉树的基本目的是:

14.设m叉树采用m叉链表(即每个结点有m个指针域,用来存放每个子树的根结点的存

储地址)存储结构,请问会有nm-2n-2个空指针域。

15.已知一个图的邻接矩阵表示,计算第i个结点的入度的方法是列的和。

16.已知一个图的邻接矩阵表示,删除所有从第i个结点出发的弧的方法是行的和。

17.设F是由T1、T2、T3三棵树组成的森林,与F对应的二叉树为B,已知「、T2、T3的

结点个数分别是n1、n2、n3,则二叉树B的根结点的左子树和右子树中的结点个数分别

为nr—1禾廿n2+n3。

18.用数组A[1..n]顺序存储完全二叉树的各结点,则当i<(n-1)/2时,结点A[i]的右子女

是结点A[2i+1]。

三)应用题

1.答:

用三元组法表示稀疏矩阵可以节省存储空间。

用二兀组表示该稀疏矩阵:

(0,0,8)

(1,6,2)

(2,1,1)

(2,5,3)

(3,4,5)

(3,6,7)

(4,2,8)

(5,5,5)

(6,4,6)

2.答

1)

2)

(2)从右子树取节点

3)用一维数组表达图二所示的树的存储结构

(60,40,70,0,58,65,75,0,0,57,0,0,0,68,0,0)

4)用一维数组表达二叉树的存储结构的缺点为容易浪费存储空间。

3.答:

1)说明每个顶点的度(degree)

顶点

1

3

2

3

3

3

4

2

5

2

6

3

2)图的表示法中,相对于相邻矩阵,邻接表有下列好处

存储效率高,访问方便。

3)该图的相邻矩阵

0

1

0

0

1

1

1

0

1

1

0

0

0

1

0

1

0

1

0

1

1

0

0

0

1

0

0

0

0

1

1

0

0

0

1

0

4)该图的邻接表表示

5)根据第4小题的邻接表

从顶点1开始的深度遍历为:

1、2、3、4、6、5

广度优先遍历为:

1、2、5、6、3、4

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

当前位置:首页 > 教学研究 > 教学计划

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

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