数据结构14章习题.docx

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

数据结构14章习题.docx

《数据结构14章习题.docx》由会员分享,可在线阅读,更多相关《数据结构14章习题.docx(27页珍藏版)》请在冰点文库上搜索。

数据结构14章习题.docx

数据结构14章习题

习题1绪论

1.1单项选择题

1.数据结构是一门研究非数值计算的程序设计问题中,数据元素的①—、数据

信息在计算机中的②以及一组相关的运算等的课程。

1A•操作对象E.计算方法C.逻辑结构D.数据映象

2A•存储结构E.关系C.运算D.算法

2.数据结构DS可以被形式地定义为DS=D,R),其中D是的有限集

合,R是D上的有限集合。

1A•算法E.数据元素C.数据操作D.数据对象

2A•操作E.映象C.存储D.关系

3.

在数据结构中,从逻辑上可以把数据结构分成。

4.

算法分析的目的是,算法分析的两个主要方面是②

5.计算机算法指的是①,它必具备输入、

1A.计算方法

C.解决冋题的有限运算序列

2A.可行性、可移植性和可扩充性

C.确定性、有穷性和稳定性

1・2填空题(将正确的答案填在相应的空中)

1.数据逻辑结构包括、和三种类型,树形结构和图形

结构合称为。

2.在线性结构中,第一个结点前驱结点,其余每个结点有且只有

个前驱结点;最后一个结点后续结点,其余每个结点有且只有个

后续结点。

3.在树形结构中,树根结点没有结点,其余每个结点有且只有

个直接前驱结点,叶子结点没有结点,其余每个结点的直接后续结点可

以。

4.在图形结构中,每个结点的前驱结点数和后续结点数可以一

5.线性结构中元素之间存在关系,树形结构中元素之间存在

关系,图形结构中元素之间存在关系。

6.算法的五个重要特性是—,—,,,。

7.分析下面算法(程序段),给出最大语句频度,该算法的时间复杂

度是。

for(i=O;i

A[i][j]=0;

8.分析下面算法(程序段),给出最大语句频度,该算法的时间复杂

度是。

for(i=0;i

A[i][j]=0;

9.分析下面算法(程序段),给出最大语句频度,该算法的时间复杂

度是。

s=0;

for(i=0;i

for(j=0;j

sum=s;

习题答案

1.11.C,A2.B,D3.C4.C,A5.C,B

1.21.线性结构、树形结构、图形结构,非线性结构

2.没有、1、没有、1

3.前驱、1、后续、任意多个

4.任意多个

5.一对一、一对多、多对多

6.有穷性、确定性、可行性、输入、输出

7.最大语句频度:

n2,时间复杂度:

.0(n2)

8.最大语句频度:

n(n+1)/2,时间复杂度:

.O(n2)

9.最大语句频度:

n3,时间复杂度:

.O(n3)

习题2线性表

2.1单项选择题

1.一个向量(即一批地址连续的存储单元)第一个元素的存储地址是100,每

个元素的长度为2,则第5个元素的地址是。

A.110B.108C.100D.120

2.线性表的顺序存储结构是一种一的存储结构,而链式存储结构是一种___的存储结构。

A.随机存取B.索引存取C.顺序存取D.散列存取

3.线性表的逻辑顺序与存储顺序总是一致的,这种说法。

A.正确B.不正确

4.线性表若采用链式存储结构时,要求内存中可用存储单元的地址o

A.必须是连续的B.部分地址必须是连续的

C.一定是不连续的D.连续或不连续都可以

5.在以下的叙述中,正确的是o

A.线性表的顺序存储结构优于链式存储结构

B.线性表的顺序存储结构适用于频繁插入/删除数据元素的情况

C.线性表的链式存储结构适用于频繁插入/删除数据元素的情况

D.线性表的链式存储结构优于顺序存储结构

6.每种数据结构都具备三个基本运算:

插入、删除和查找,这种说法o

A.正确B.不正确

7.不带头结点的单链表head为空的判定条件是。

A.head==NULLB.head->next==NULL

C.head->next==headD.head!

=NULL

8.带头结点的单链表head为空的判定条件是。

A.head==NULLB.head->next==NULL

C.head->next==headD.head!

=NULL

9.非空的循环单链表head的尾结点(由p所指向)满足。

A.p->next==NULLB.p==NULL

C.p->next==headD.p==head

10.在双向循环链表的p所指结点之后插入s所指结点的操作是o

A.p->nextt=s;s->prior=p;p->next->prior=s;s->next=p->next;

B.p->next=s;p->next->prior=s;s->prior=p;s->next=p->next;

C.s->prior=p;s->next=p->next;p->next=s;p->next->prior=s;

D.s->prior=p;s->next=p->next;p->next->prior=s;p->next=s;

11.在一个单链表中,已知q所指结点是p所指结点的前驱结点,若在q和p

之间插入s结点,则执行。

A.s->next=p->next;p->next=s;B.p->next=s->next;s->next=p;

B.q->next=s;s->next=p;C.p->next=s;s->next=q;

12.在一个单链表中,若p所指结点不是最后结点,在p之后插入s所指结点,

则执行。

A.s->next=p;p->next=s;B.s->next=p->next;p->next=s;

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

13.在一个单链表中,若删除p所指结点的后续结点,则执行—。

A.p->next=p->next->next;B.p=p->next;p->next=p->next->next;

C.p->next=p->next;D.p=p->next->next;

2.2填空题(将正确的答案填在相应的空中)

1.单链表可以做的链接存储表示。

2.在双链表中,每个结点有两个指针域,一个指向,另一个指向。

3.在一个单链表中p所指结点之前插入一个s(值为e)所指结点时,可执行

女口下操作:

q=head;while(q->next!

=p)q=q->next;

s=newNode/*生成新结点*/;s->data=e;

q->next=;〃填空

s->next=;〃填空

4.在一个单链表中删除p所指结点的后继结点时,应执行以下操作:

q=p->next;p->next=;//填空

free(;〃填空

5.在一个单链表中p所指结点之后插入一个s所指结点时,应执行

s->next=和p->next=的操作。

2.3算法设计题:

1.设顺序表va中的数据元数递增有序。

试写一算法,将x插入到顺序表的适当位置上,以保持该表的有序性。

2.试写一算法,实现顺序表的就地逆置,即利用原表的存储空间将线性表(a1,a2,….an逆置为(an,an-1,….,a1。

3.已知线性表中的元素以值递增有序排列,并以单链表作存储结构。

试写一算法,删除表中所有大于x且小于y的元素(若表中存在这样的元素)同时释放被删除结点空间。

4.试写一算法,实现单链表的就地逆置(要求在原链表上进行)。

习题答案

2.11.B2.A,C3.B4.D5.C6.A7.A

8.B9.C10.D11.B12.B13.A

2.21.线性结表2.前驱结点、后继结点

3.s,p4.q->next,q5.p->next,s

习题3栈和队列

3.1单项选择题

1.一个栈的入栈序列a,b,c,d,e,贝U栈的不可能的输出序列是。

A.edcbaB.decbaC.dceabD.abcde

2.若已知一个栈的入栈序列是1,2,3,…,n,其输出序列为p1,p2,p3,…,

pn,若p1=n,贝Upi为。

A.iB.n=iC.n-i+1D.不确定

3.栈结构通常采用的两种存储结构是。

A.顺序存储结构和链式存储结构

B.散列方式和索引方式

C.链表存储结构和数组

D.线性存储结构和非线性存储结构

S(最多元素为m)为空的条件是_

B.S.top==0C.S.top!

=m

S(最多元素为m)为栈满的条件是

A.先进先出B.先进后出

7.向一个栈顶指针为HS的链栈中插入一个s所指结点时,则执行(不带空的头结点)

A.HS—>next=s;

B.s—>next=HS—>next;HS—>next=s;

C.s—>next=HS;HS=s;

D.s—>next=HS;HS=HS—>next;

8.从一个栈顶指针为HS的链栈中删除一个结点时,用x保存被删结点的值,则执行。

(不带空的头结点)

A.x=HS;HS=HS—>next;B.x=HS—>data;

C.HS=HS—>next;x=HS—>data;D.x=HS—>data;HS=HS—>next;

9.一个队列的数据入列序列是1,2,3,4,则队列的出队时输出序列是。

A.4,3,2,1B.1,2,3,4

C.1,4,3,2D.3,2,4,1

10.判定一个循环队列Q(最多元素为m)为空的条件是。

A.rear-front==mB.rear-front-1==m

C.front==rearD.front==rear+1

11.判定一个循环队列Q(最多元素为m,m==Maxsize-1)为满的条件是。

A.((rear-front)+Maxsize)%Maxsize==m

B.rear-front-1==mC.front==rearD.front==rear+1

12.循环队列用数组A[0,m-1]存放其元素值,已知其头尾指针分别是front和

rear,贝U当前队列中的元素个数是。

A.(rear-front+m)%mB.rear-front+1C.rear-front-1D.rear-front

13.栈和队列的共同点是。

A.都是先进后出B.都是先进先出

C.只允许在端点处插入和删除元素D.没有共同点

3.2填空题(将正确的答案填在相应的空中)

1.向量、栈和队列都是结构,可以在向量的位置插入和删除元素;

对于栈只能在插入和删除元素;对于队列只能在插入元素和删除

2.向一个长度为n的向量的第i个元素(Ki

需向后移动个元素。

3.向一个长度为n的向量中删除第i个元素(Ki

4.向栈中压入元素的操作是。

5.对栈进行退栈时的操作是。

6.在一个循环队列中,队首指针指向队首元素的。

7.从循环队列中删除一个元素时,其操作是。

8.在具有n个单元的循环队列中,队满时共有元素。

9.一个栈的输入序列是12345,贝U栈的输出序列43512是。

10.一个栈的输入序列是12345,则栈的输出序列12345是。

3.3算法设计题:

1.输入一个任意的非负十进制整数,输出与其等值的八进值数。

2.按照四则运算加、减、乘、除和幕运算(0优先关系的惯例,并仿照

教科书3.2节例3—1的格式,画出对下列算术表达式求值时操作数栈和运算符栈的变化过程:

A-B*C/D+EIF

3.假设以带头结点的循环链表表示队列,并且只设一个指针指向队尾元素结点(注意不设头指针),试编写相应的队列初始化、入队列和出队列的算法。

习题答案

3.1

6.BA7.C8.B9.C10.C

2.n-i+13.n-i

5.先取出元素,后移动栈顶指针

7.先移动队首元素,后取出元素

10.可能的

1.C2.C3.A4.B5.D

11.A12.A13.C

3.21.线性、任何、栈顶、队尾、队首

4.先移动栈顶指针,后存入元素

6.前一个位置

8.n-19.不可能的

习题4串

4.1单项选择题

1•以下叙述中正确的是。

A.串是一种特殊的线性表B.串的长度必须大于零

C.串中无素只能是字母D.空串就是空白串

2•空串与空格串是相同的,这种说法。

A.正确B.不正确

3•串是一中特殊的线性表,其特殊性体现在。

A.可以顺序存储B.数据元素是一个字符

C.可以链接存储D.数据元素可以是多个字符

4.设有两个串p和q,求q在p中首次出现的位置的运算称作。

A.连接B.模式匹配

C.求子串D.求串长

5.设串s仁’ABCDEFGs2='PQRST函数con(x,y)返回x和y串的连接串,

subs(s,i,j)返回串s的从序号i的字符开始的j个字符组成的子串,len(s返回串s的长度,则con(subs(s1,2,len(s2)),subs(s1,len(s2),2的结果串是。

A.BCDEFB.BCDEFG

C.BCPQRSTD.BCDEFEF

6.设串的长度为n,则它的子串个数为。

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

4.2填空题(将正确的答案填在相应的空中)

1.串的两种最基本的存储方式是。

2.两个串相等的充分必要条件是。

3.空串是,其长度等于。

4.空格串是,其长度等于。

5.设s=TAM~A~TEACHER,其长度是。

4.3判断题

1.串是由有限个字符构成的连续序列,串长度为串中字符的个数,子串是主串中符构成的有限序列。

()

2.子串定位函数的时间复杂度在最坏情况下为O(n*m),因此子串定位函数没有实际使用的价值。

()

3.如果一个串中的所有字符均在另一串中出现,则说前者是后者的子串。

()

4.4算法设计题

1.编写算法,从串s中删除所有和串t相同的子串。

2.编写算法,实现串的基本操作Replace(&S,T,V)。

3.写一个递归算法来实现字符串逆序存储,要求不另设存储空间。

习题答案

4.11.A2.B3.B4.B5.D6.C

4.2

1.顺序存储方式和链接存储方式

2.两个串的长度相等且对应位置的字符相同

3.零个字符的串、零

4.由一个或多个空格字符组成的串、其包含的空格个数

5.14

4.2xxx

4.4

3.voidreverse(chararr[])

{charch;

inti=1;

do{cin>>ch;

reverse(arr);

arr[i]=ch;

i++;

}while(ch!

='#'&&i

}

习题5数组和广义表5.1单项选择题

1.常对数组进行的两种基本操作是。

A.建立与删除B.索引和修改C.对数据元素的存取和修改D.

查找与索引

2.二维数组M的成员是6个字符(每个字符占一个存储单元,即一个字

节)组成的串,行下标i的范围从0到8,列下标j的范围从0到9,则存放M至少需要①个字节;M数组的第8列和第5行共占②—字节。

1A.90B.180C.240D.540

2A.108B.114C.54D.60

3.二维数组A中,每个元素的长度为3个字节,行下标i从0到7,列下标j从0到9,从首地址SA开始连续存放在存储器内,存放该数组至少需要的字节数是—o

A.80B.100C.240D.270

4.二维数组A中,每个元素A的长度为3个字节,行下标i从0到7,列下标j从0到9,从首地址SA开始连续存放在存储器内,该数组按行存放时,

数组元素A[7][4]的起始地址为o

A.SA+141B.SA+144C.SA+222D.SA+225

5.二维数组A中,每个元素A的长度为3个字节,行下标i从0到7,列

下标j从0到9,从首地址SA开始连续存放在存储器内,该数组按列存放时,元素A[4][7]的起始地址为o

A.SA+141B.SA+180C.SA+222D.SA+225

6.稀疏矩阵一般的压缩存储方法有两种,即。

A.二维数组和三维数组B.三元组与散列

C.三元组与十字链表D.散列和十字链表

7.若用三元组压缩技术存储稀疏矩阵,只要把每个元素的行下标和列下标

互换,就完成了对该矩阵的转置运算,这种观点

A.正确B.不正确

8•设矩阵A是一个对称矩阵,为节省存储,将其下三角部分按行序存放在

一维数组B[0..n(n+1)/2]中,对下三角部分中任一元素科(i>j),在一组数组B

的下标位置k的值是。

A.i(i-1)/2+j-1B.i(i-1)/2+jC.i(i+1)/2+j-1D.i(i+1)/2+j

5.2填空题(将正确的答案填在相应的空中)

1.已知二维数组A[m][n]采用行序为主方式存储,每个元素占k个存储单

元,并且第一个元素的存储地址是LOC(A[0][0]),则A[i][j]的地址是。

2.二维数组A[10][20]采用列序为主方式存储,每个元素占一个存储单元

并且A[0][0]的存储地址是200,则A[6][12]的地址是。

3.二维数组A[10..20][5..10]采用行序为主方式存储,每个元素占4个存储

单元,并且A[10][5]的存储地址是1000,则A[18][9]的地址是。

4.有一个10阶对称矩阵A,采用压缩存储方式(以行为主存储,且

LOC(A[0][0])=0),J则A[8][5]的地址是。

40

5.设n行n列的下三角矩阵A已压缩到一维数组S[0..n*(n+1)/2]中,若按行序为主存储,则A[i][j]对应的S中的存储位置是oi(i+1)/2+j

6.在一个稀疏矩阵中,每个非零元素所对应的三元组包括该元素的

、和项。

7.—个稀疏矩阵如图所示,则对应的三元数组表示为o

一0020_

3000

00—15

0000^

8.在稀疏矩阵所对应的三元组线性表中,每个三元组元素按为主

序、辅序的次序排列。

9.二维或多维数组,分为按和种不同的

存储方式.

5.3应用题:

1.已知一个稀疏矩阵如下图所示:

040-0000000-3001

0-70002

000T600

具有6行X7列的一个稀疏矩阵

(1)写出它的三元组线性表;

(2)给出它的顺序存储表示;

(3)给出它的转置矩阵的三元组线性表和顺序存储表示;

5.4算法设计题:

1.假设稀疏矩阵A和B均以三元组顺序表作为存储结构。

试写出矩阵相加的算法,另设三元组表C存放结果矩阵。

习题答案

5.11.C2.D,A3.C4.C5.B6.C7.B8.D

5.21.LOC(A[0][0])+(n*i+j)*k2.200+(6*20+12)=326

3.1000+((18-10)*6+(9-5))*4=1208

4.415.i(i+1)/2+j6•行号,列号,元素值

7.

i

j

v

0

2

2

1

0

3

2

2

-1

2

「3

5

8.行,列

9.行优先顺序存储,列优先顺序存储

5.3

(1)((0,1,4),(1,3,-3),(1,6,1),(2,0,8),(3,3,5),(4,1,-7),(4,5,2),(5,3,6))

i

j

v

0

「1

4

1

3

-3

1

6

1

2

「0

8

3

3

5

4

「1

-7

4

5

2

5

「3

6

(3)

习题6树和二叉树6.1单项选择题

1.由于二叉树中每个结点的度最大为2,所以二叉树是一种特殊的树,这种

说法。

B

A.正确B.错误

2.假定在一棵二叉树中,双分支结点数为15,单分支结点数为30个,则叶

子结点数为个。

BA.15B.16C.17D.47

3.按照二叉树的定义,具有3个结点的不同形状的二叉树有种。

C

A.3B.4C.5D.6

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

说法。

A

A.正确B.错误

5.深度为5的二叉树至多有结点。

C

A.16B.32C.31D.10

6.设高度为h的二叉树上只有度为0和度为2的结点,则此类二叉树中所包

含的结点数至少为__。

B

A.2hB.2h-1C.2h+1D.h+1

7.对一个满二叉树,m个树叶,n个结点,深度为h,则。

D

I—

A.n=h+mB.h+m=2nC.m=h-1D.n=2-1

8.

任何一棵二叉树的叶结点在先序、中序和后序遍历序列中的相对次序

14.一棵二叉树如图6.2所示,其中序遍历的序列为。

B

A.abdgcefhB.dgbaechfC.gdbehfcaD.abcdefgh

15.设a,b为一棵二叉树上的两个结点,在中序遍历时,a在b前的条件

是。

B

图6.6一棵二叉树的顺序存储数组t

5.深度为k的完全二叉树至少有个结点。

至多有个结点,若按自上而

下,从左到右次序给结点编号(从1开始),则编号最小的叶子结点的编号是

0

6.在一棵二叉树中,度为零的结点的个数为no,度为2的结点的个数为n2,

则有no=。

7.一棵二叉树的第i(i>1)层最多有个结点;一棵有n(n>0)个结点的

满二叉树共有个叶子和个非终端结点。

8.结点最少的树为,结点最少的二叉树为。

9.现有按中序遍历二叉树的结果为abc,问有种不同形态的二叉树可以得

到这一遍历结果,这些二叉树分别是。

10.

由如图6.7所示的二叉树,回答以下问题:

⑴其中序遍历序列为;

⑵其前序遍历序列为

⑶其后序遍历序列为

6.3简答题

1.根据二叉树的定义,具有三个结点的二叉树有别画出。

2.假设一棵二叉树的先序序列为EBADCFHGIKJ中序序列为AB

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

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

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

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