数据结构串和数组习题
- 格式:pdf
- 大小:205.33 KB
- 文档页数:7
【课后习题】第4章 串 第5章 数组和广义表网络工程2010级( )班 学号: 姓名:一、填空题(每空1分,共30分)1. 串有三种机内表示方法: 、 和 ,其中前两种属于顺序存储结构,第三种属于 。
2. 若n 为主串长度,m 为子串长度,则串的BF (朴素)匹配算法最坏的情况下需要比较字符的总次数为 ,T(n)= 。
3. 是任意串的子串;任意串S 都是S 本身的子串,除S 本身外,S 的其他子串称为S 的 。
4. 设数组a[1…50, 1…60]的基地址为1000,每个元素占2个存储单元,若以行序为主序顺序存储,则元素a[32,58]的存储地址为 。
5. 对于数组,比较适于采用 结构够进行存储。
6. 广义表的深度是指_______。
7. 将一个100100 A 的三对角矩阵,按行优先存入一维数组B[297]中,A 中元素66,66A 在B 数组中的位置k 为 。
注意:a i,j 的k 为 2(i-1)+j-1,(i=1时j=1,2;1<i<=n 时,j=i-1,i,i+1) 。
8. 称为空串; 称为空白串。
9. 求串T 在主串S 中首次出现的位置的操作是 ,其中 称为目标串, 称为模式。
10. 对称矩阵的下三角元素a[i,j],存放在一维数组V 的元素V[k]中(下标都是从0开始),k 与i ,j 的关系是:k= 。
11. 在n 维数组中每个元素都受到 个条件的约束。
12. 同一数组中的各元素的长度 。
13. 三元素组表中的每个结点对应于稀疏矩阵的一个非零元素,它包含有三个数据项,分别表示该元素的 、 和 。
14. 稀疏矩阵中有n 个非零元素,则其三元组有 行。
15.求下列广义表操作的结果:(1)GetHead【((a,b),(c,d))】=== ;(2)GetHead【GetTail【((a,b),(c,d))】】=== ;(3)GetHead【GetTail【GetHead【((a,b),(c,d))】】】=== ;(4)GetTail【GetHead【GetTail【((a,b),(c,d))】】】=== ;16.广义表E=(a,(b,E)),则E的长度= ,深度= ;二、判断题(如果正确,在下表对应位置打“√”,否则打“⨯”。
习题四串一、单项选择题1.下面关于串的的叙述中,哪一个是不正确的?()A.串是字符的有限序列 B.空串是由空格构成的串C.模式匹配是串的一种重要运算 D.串既可以采用顺序存储,也可以采用链式存储2.串是一种特殊的线性表,其特殊性体现在()。
A.可以顺序存储 B.数据元素是一个字符C.可以链接存储 D.数据元素可以是多个字符3.串的长度是指()A.串中所含不同字母的个数 B.串中所含字符的个数C.串中所含不同字符的个数 D.串中所含非空格字符的个数4.设有两个串p和q,其中q是p的子串,求q在p中首次出现的位置的算法称为()A.求子串 B.联接 C.匹配 D.求串长5.若串S=“softwa re”,其子串的个数是()。
A.8 B.37 C.36 D.9二、填空题1.含零个字符的串称为______串。
任何串中所含______的个数称为该串的长度。
2.空格串是指__ __,其长度等于__ __。
3.当且仅当两个串的______相等并且各个对应位置上的字符都______时,这两个串相等。
一个串中任意个连续字符组成的序列称为该串的______串,该串称为它所有子串的______串。
4.INDEX(‘DATAST RUCTU RE’,‘STR’)=________。
5.模式串P=‘abaabc ac’的next函数值序列为________。
6.下列程序判断字符串s是否对称,对称则返回1,否则返回0;如 f("abba")返回1,f("abab")返回0;int f((1)__ ______){int i=0,j=0;while(s[j])(2)___ _____;for(j--; i<j && s[i]==s[j]; i++,j--);return((3)___ ____)}7.下列算法实现求采用顺序结构存储的串s和串t的一个最长公共子串。
第四章串和数组一.选择题1.串是一种特殊的线性表,其特殊性体现在()A.可以顺序存储B.数据元素是一个字符C.可以链式存储D.数据元素可以是多个字符2.串的长度是()A.串中不同字母的个数B.串中不同字符的个数C.串中所含字符的个数,且大于0 D.串中所含字符个数3.若串S=”software”,其子串数目是()A.8 B.37 C.36 D.94.数组A[0..5,0..6]的每个元素占5个单元,将其按列优先次序存储在起始地址为1000的连续内存单元中,则元素A[5][5]的地址为()A.1175 B.1180 C.1205 D.12105.对矩阵压缩存储是为了()A.方便运算B.节省存储空间C.方便存储D.提高运算速度6.一个n 阶对称矩阵,如果采用压缩存储方式,则容量为()A.n2B.n2/2 C.n(n+1)/2 D.(n+1)2/27.对稀疏矩阵采用压缩存储,其缺点之一是()A.无法判断矩阵有多少行多少列B.无法根据行列号查找某个矩阵元素C.无法根据行列号计算矩阵元素的存储地址D.使矩阵元素之间的逻辑关系更加复杂二.填空1.设串s1=”I am a student”,则串长为()2.设有两个串p和q,其中q是p的子串,求子串q 在p中首次出现位置的算法称为()3.一维数组的逻辑结构是(),存储结构是();对于二维或多维数组,分为按()和()两种不同的存储结构。
4.数组A[1..10,-2..6,2..8]以行优先顺序存储,设第一个元素的首地址为100,每个元素占3个单元的存储空间,则元素A[5][0][7]的存储地址为()5.三维数组R[C1..D1,C2..D2,C3..D3]共含有()个元素。
三、算法设计1.编写下列算法(假定下面所用的串均采用顺序存储方式,参数c、c1和c2均为字符型):(1)将串S中所有其值为c1的字符换成c2的字符。
(2)将串S中所有字符逆序(3)从串S中删除其值等于c的所有字符(4)从串S中第index个字符起求出首次与字符串S1相同的子串的起始位置(5)从串S中删除重第i个字符起的j 个字符(6)从串S中删除所有与串S1相同的子串(允许调用第(4)题和第(5)题的算法)2.设计程序,计算串str中每一个字符出现的次数。
《数据结构》第四章串习题《数据结构》第四章串习题基本概念题:4-1 设S1 =“Data Structure Course”,S2 =“Structure”,S3 =“Base”,求:(1)Length(S1);(2)Compare(S2, S3);(3)Insert(S1, 5, S3);(4)Delete(S1, 5, 9);(5)SubString(S1, 5, 9, T);(6)Search(S1, 0, S2);(7)Replace(S1, 0, S2, S3)4-2 什么叫串?串和字符在存储方法上有什么不同?空串和空格串是否相同,为什么?4-3 串是由字符组成的,长度为1的串和字符是否相同。
为什么?4-4 串是不定长的,表示串的长度有几种方法?C语言中的串采用哪种方法?4-5 可以说串是数据类型固定为字符类型的线性表,但是串操作和线性表操作的主要不同之处在哪里?4-6 可以用几种存储方法存储串?4-7 分别写出串的静态数组存储结构和串的动态数组存储结构的结构体定义。
4-8 为什么动态数组结构下串的实现要增加撤消函数?复杂概念题:4-9 令t1=“aaab”, t2=“abcabaa”, t3=“abcaabbabcabaacba”,试分别求出他们的next[j]值。
4-10 简述模式匹配的Brute-Force算法思想。
简述模式匹配的KMP算法思想。
4-11 简述求子串的next[j]值的算法思想。
算法设计题:4-12 设串采用静态数组存储结构,编写函数实现两个串的比较Compare(S, T)。
要求比较结果有等于和不等于两种情况。
4-13 设串采用静态数组存储结构,编写函数实现两个串的比较Compare(S, T)。
要求比较结果有大于、等于和小于三种情况。
4-14 设串采用动态数组存储结构,编写函数实现两个串的比较Compare(S, T)。
要求比较结果有大于、等于和小于三种情况。
数据结构习题精编:串和数组一、选择题1.下面关于串的的叙述中,不正确的是A.串是字符的有限序列B.空串是由空格构成的串C.模式匹配是串的一种重要运算D.串既可以采用顺序存储,也可以采用链式存储2.下面关于串的的叙述中,正确的是A.空串就是空白串B.串相等指的是串的长度相等C.串的长度必须大于零D.串是一种特殊的线性表3.字符串是一种特殊的线性表,它与一般线性表的区别是A.字符串是一种线性结构B.字符串可以进行复制操作C.字符串可以顺序存储也可以链式存储D.字符串由字符构成并且通常作为整体参与操作4.串s="Data Structure"中长度为3的子串的数目是A.9B.11C.12D.145.若串S="software",则S的子串的数目是A.8 B.35 C.36 D.376.已知串S= "string",T="this",执行运算StrLength(StrCopy(S,T))的结果是A.2 B.4 C.6 D.107.若串S="SCIENCESTUDY",则调用函数StrCopy(P,SubString(S,1,7))后得到A.P="STUDY" B.P="SCIENCE" C.S="STUDY" D.S="SCIENCE" 8.若字符串采用链式存储,每个字符占用一个字节,每个指针在占用四个字节,则该字符串的存储密度为A.20%B.25%C.50%D.75%9.为查找某一特定单词在文本中出现的位置,可应用的串运算是A.串联接B.求子串C.串比较D.子串定位10.当目标串的长度为n,模式串的长度为m时,朴素的模式匹配算法最好情况下字符的比较次数A.m B.n C.n-m D.n+m11.当目标串的长度为n,模式串的长度为m时,朴素的模式匹配算法最坏情况下字符的比较次数A.m B.n C.(n-m+1)*m D.n*m12.已知串S="aaab",其Next数组的元素值依次为A.0、1、2、3 B.1、1、2、3 C.1、2、1、1 D.1、2、3、1 13.串"ababaaababaa" 的next数组为A.011234223456 B.012121111212 C.0123012322345 D.012345678999 14.字符串"ababaabab" 的nextval 为A.(0,1,0,1,0,0,0,1,1) B.(0,1,0,1,0,1,0,1,1)C.(0,1,0,1,0,2,1,0,1) D.(0,1,0,1,0,4,1,0,1)15.二维数组A[10][20]采用按行为主序的存储方式,每个元素占4个存储单元,若A[0][0]的存储地址为300,则A[8][10]的地址为A.660 B.732 C.980 D.113216.二维数组A[5][6]采用按列为主序的存储方式,每个元素占3个存储单元,若A[0][0]的存储地址是100,则A[4][3]的存储地址是A.157 B.166 C.169 D.18117.二维数组A按行优先顺序存储,其中每个元素占1个存储单元。
数据结构习题精编:串和数组一、选择题1.下面关于串的的叙述中,不正确的是A.串是字符的有限序列B.空串是由空格构成的串C.模式匹配是串的一种重要运算D.串既可以采用顺序存储,也可以采用链式存储2.下面关于串的的叙述中,正确的是A.空串就是空白串B.串相等指的是串的长度相等C.串的长度必须大于零D.串是一种特殊的线性表3.字符串是一种特殊的线性表,它与一般线性表的区别是A.字符串是一种线性结构B.字符串可以进行复制操作C.字符串可以顺序存储也可以链式存储D.字符串由字符构成并且通常作为整体参与操作4.串s="Data Structure"中长度为3的子串的数目是A.9B.11C.12D.145.若串S="software",则S的子串的数目是A.8 B.35 C.36 D.376.已知串S= "string",T="this",执行运算StrLength(StrCopy(S,T))的结果是A.2 B.4 C.6 D.107.若串S="SCIENCESTUDY",则调用函数StrCopy(P,SubString(S,1,7))后得到A.P="STUDY" B.P="SCIENCE" C.S="STUDY" D.S="SCIENCE" 8.若字符串采用链式存储,每个字符占用一个字节,每个指针在占用四个字节,则该字符串的存储密度为A.20%B.25%C.50%D.75%9.为查找某一特定单词在文本中出现的位置,可应用的串运算是A.串联接B.求子串C.串比较D.子串定位10.当目标串的长度为n,模式串的长度为m时,朴素的模式匹配算法最好情况下字符的比较次数A.m B.n C.n-m D.n+m11.当目标串的长度为n,模式串的长度为m时,朴素的模式匹配算法最坏情况下字符的比较次数A.m B.n C.(n-m+1)*m D.n*m12.已知串S="aaab",其Next数组的元素值依次为A.0、1、2、3 B.1、1、2、3 C.1、2、1、1 D.1、2、3、1 13.串"ababaaababaa" 的next数组为A.011234223456 B.012121111212 C.0123012322345 D.012345678999 14.字符串"ababaabab" 的nextval 为A.(0,1,0,1,0,0,0,1,1) B.(0,1,0,1,0,1,0,1,1)C.(0,1,0,1,0,2,1,0,1) D.(0,1,0,1,0,4,1,0,1)15.二维数组A[10][20]采用按行为主序的存储方式,每个元素占4个存储单元,若A[0][0]的存储地址为300,则A[8][10]的地址为A.660 B.732 C.980 D.113216.二维数组A[5][6]采用按列为主序的存储方式,每个元素占3个存储单元,若A[0][0]的存储地址是100,则A[4][3]的存储地址是A.157 B.166 C.169 D.18117.二维数组A按行优先顺序存储,其中每个元素占1个存储单元。