《空间数据结构基础》第四讲习题参考答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《空间数据结构基础》第四讲习题参考答案
一、判断题(在正确说法的题后括号中打“√”,错误说法的题后括号中打“×”)
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,则串匹配的Brute-Force算法的时间复杂度为 O(m*n) ;KMP算法的时间复杂度为 O(m+n) 。
3、已知数组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、所谓回文,是指从前向后顺读和从后向前倒读都一样的不含空白字符的串。例如did,pop,madamimadam即是回文。试编写一个算法判断一个串是否为回文。【参考解答】
//判断长度为len的串是否为回文,是返回TRUE,否则返回FALSE
bool IsPalindrome(char* S,int len)
{
for(int i=0;i { if(S[i]!=S[len-1-i])return false; } return true; }