《数据结构》第四章习题参考答案

  • 格式:docx
  • 大小:16.96 KB
  • 文档页数:2

《数据结构》第四章习题

一、判断题(在正确说法的题后括号中打“√”,错误说法的题后括号中打“×”)

1、KMP算法的特点是在模式匹配时指示主串的指针不会变小。( √ )

2、串是一种数据对象和操作都特殊的线性表。( √ )

3、只包含空白字符的串称为空串(空白串)。( × )

4、稀疏矩阵压缩存储后,必会(不会)失去随机存取功能。( × )

5、使用三元组表示稀疏矩阵的非零元素能节省存储空间。( √ )

6、插入与删除操作是数据结构中最基本的两种操作,因此这两种操作在数组中也经常使用。(×)

7、若采用三元组表存储稀疏矩阵,只要把每个元素的行下标和列下标互换(错的),就完成了对该矩阵的转置运算。(×)

二、单项选择题

1.下面关于串的的叙述中,哪一个是不正确的?( B )

A.串是字符的有限序列 B.空串是由空格构成的串(空串是长度为零的串)

C.模式匹配是串的一种重要运算 D.串既可以采用顺序存储,也可以采用链式存储

2.有串S1=’ABCDEFG’,S2 = ’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))的结果串是( D )。

A.BCDEF B.BCDEFG C.BCPQRST D.CDEFGFG

3、串的长度是指( B )

A.串中所含不同字母的个数 B.串中所含字符的个数

C.串中所含不同字符的个数 D.串中所含非空格字符的个数

三、填空题

1、串是一种特殊的线性表,其特殊性表现在_数据元素为字符,操作集也不同

__;串的两种最基本的存储方式是_顺序存储 _、__ 链式存储 _;两个串相等的充分必要条件是__两串的长度相等且两串中对应位置的字符也相等__。

2、设正文串长度为n,模式串长度为m,则串匹配的KMP算法的时间复杂度为_O(m+n)__。

3、模式串P=‘abaabcac’的next函数值序列为_{-1,0,0,1,1,2,0,1}___。

4、已知数组A[0..9,0..9]的每个元素占5个存储单元,将其按行优先次序存储在起始地址为1000的连续的内存单元中,则元素A[6,8]的地址为__1340___。

四、综合题

1、KMP算法较Brute-Force算法有哪些改进?

【解答】

朴素的模式匹配(Brute-Force)时间复杂度是O(m*n),KMP算法有一定改进,时间复杂度达到O(m+n)。KMP算法主要优点是主串指针不回溯。当主串很大不能一次读入内存且经常发生部分匹配时,KMP算法的优点更为突出。

2、课本P183 4.1题

【解答】

A[2][2] = 644+2*n+2 = 676

A[3][3] = 644+3*n+3 = 692

3、课本P184 4.7题 【解答】

三元组表:row = 6, col = 7, terms = 9

{(0,0,12),(0,2,11),(0,5,13),(1,6,14),(2,1,-4),(2,5,3)(3,3,8),(5,1,-9),(5,4,2) }

行指针数组[0,3,4,6,-1,7]二元组{(0,12),(2,11),(5,13),(6,14),(1,-4),(5,3),(3,8),(1,-9),(4,2) }

4、课本P184 4.8题

【解答】

s: next[-1,0,0,1]

t: next[-1,0,0,0,1,2,1]

r: next[-1,0,0,0,0,1,1,2,0,1,2,3,1,2,1,1,0,0,1,0,0]

5、课本P184 4.9题

【解答】略