文档库 最新最全的文档下载
当前位置:文档库 › 第四章串和数组习题

第四章串和数组习题

第四章串和数组习题
第四章串和数组习题

第四章串和数组

一.选择题

1.串是一种特殊的线性表,其特殊性体现在()

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

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

2.串的长度是()

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

C.串中所含字符的个数,且大于0 D.串中所含字符个数

3.若串S=”software”,其子串数目是()

A.8 B.37 C.36 D.9

4.数组A[0..5,0..6]的每个元素占5个单元,将其按列优先次序存储在起始地址为1000的连续内存单元中,则元素A[5][5]的地址为()

A.1175 B.1180 C.1205 D.1210

5.对矩阵压缩存储是为了()

A.方便运算B.节省存储空间C.方便存储D.提高运算速度

6.一个n 阶对称矩阵,如果采用压缩存储方式,则容量为()

A.n2B.n2/2 C.n(n+1)/2 D.(n+1)2/2

7.对稀疏矩阵采用压缩存储,其缺点之一是()

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中每一个字符出现的次数。

3.采用顺序结构存储串,编写一个算法计算制定子串在一个字符串中出现的次数,如果该子串不出现则为0。

4.如果矩阵A中存在这样一个元素A[i][j]满足条件:A[i][j]是第i行中值最小的元素,且又是第j 列中值最大的元素,则称为该矩阵的一个马鞍点。编写一个算法计算出m×n的矩阵A的所有马鞍点。

5.编写一个算法,计算一个三元组表表示的稀疏矩阵的对角线元素之和。

6.系数矩阵只存放其非零元素的行号、列号和数值,用一维数组顺序存放之,行号-1作为

结束标志,试写出两个稀疏矩阵相加的算法。

参考答案

一.B D B A B C C

二.1.14 2.模式匹配3.线性结构顺序结构行优先列优先4.913 5.(d1-c1+1)*(d2-c2+1)8(d3-c3+1)

三.1.

(1)void trans(sqstring &s,char c1,char c2)

{ int I;

For(i=0;i

If ( s.data[i]==c1)

s.data[i]=c2;

}

(2)void invert(sqstring &s)

{ int I;

Char temp;

For (i=0;i

{ temp=s.data[i];

s.data[i]=s.data[s.length-i+1];

s.data[s.length-i+1]=temp;

}}

(3)void delall( sqstring &s,char c)

{ int I,j;

For(i=0;i

If (s.data[i]==c)

{ for (j=I;j

s.data[j]=s.data[j+1];

s.length--;

}

}

(4)int partpos(SqString S,SqString S1,int index)

{ int i,j,k;

int n=S.length;

int m=S1.length; for(i=index;i<=n-m;i++)

{ for (j=0,k=I;j

if (j==m) return(i);

}

return(-1);

}

(5)SqString *DelSubs(SqString S,int i,int j)

{ int m=s.length,k;

If(i>m-1 || i+j>=m)

{ printf(“参数错误\n”);

Exit(0);

}

For(k=I;k<=i+j-1;k++)

S.data[k]=s.data[k+j];

s.length=s.length-j;

return s;

}

(6)SqString *DelSubsAll(SqString s,SqString s1)

{ int i=0;

While(i

{ if((i=Partpos(s,s1,i))!= -1)

S=delsubs(s,I,s1.length);

I++;

}

Return s;

}

2.

#include

#include #include Typedef struct

{ char data[Maxsize]; Int length;

} SqString;

Typedef struct { char c;

Int num;

} CType;

Int fun(SqString str,CType cnum[]) { int I,j,k=0;

For(i=0;i

{ if (k==0)

{cnum[k].c=str.data[i];

Cnum[k].num=1;

K++;

}

Else

{ for(j=0;j

If(j>=k)

{ cnum[k].c=str.data[i];

Cnum[k].num=1;

K++;

}

Else cnum[j].num++;

}

}

Return k;

}

3.

int Str_Count(SqString substr,SqString str)

{ int i=0,j,k,count=0;

For(i=0;str.data[i];i++)

{ for (j=I,k=0;j

If(k>=substr.length)

Count++;

}

Return(count);

}

4.

#include

#define M 3

#define N 4

int maxrow( int a[M][N],int m, int n, int row)

{ int j; int max=1;

for(j=2;j<=n;j++)

if (a[row][j]>a[row][max]) max=j; return max;

}

int maxcol( int a[M][N],int m, int n, int col)

{ int j; int max=1;

for(j=2;j<=n;j++)

if (a[row][j]>a[row][max]) max=j; return max;

}

Void find( int a[M][N],int m, int n) { int I,j;

For (i=1;i<=m; i++)

{ j=maxrow(a,m,n,i);

Maxi=maxcol(a,m,n,j);

If (maxi==i) printf(“%d\t”,a[i][j];) }

}

5.

Int diagonal (TSMatrix a,ElemType &sum) { int I;

Sum=0;

If(a.rows!=a.cols)

{ printf(“不是对角矩阵\n”);

Return 0; }

For(i=1;i<=a.nums;i++)

If(a.data[i].r==a.data[i].c)

Sum+=a.data[i].d; Return 1;

}

6.

Void add(int a[], int b[], int c[])

{ int i=0,j=0,k=0,sum;

While((a[i]!=-1 && b[j]!=-1)

{ if (a[i]==b[j])

{ if (a[i+1]==b[j+1]

{sum=a[i+2]+b[j+2];

If (sum!=0)

{ c[k]=a[i];c[k+1]=a[i+1];c[k+2]=sum;

K=k+3;}

I+=3; j=+3;

}

Else if (a[i+1]

{ c[k]=a[i];c[k+1]=a[i+1];c[k+2]=a[i+2];

K+=3; i+=3;

}

Else { c[k]=b[j];c[k+1]=b[j+1];c[k+2]=b[j+2];

K+=3;j+=3;

}

Else if(a[i]

{ c[k]=a[i];c[k+1]=a[i+1];c[k+2]=a[i+2];

K+=3;i+=3;

}

Else { c[k]=b[j];c[k+1]=b[j+1];c[k+2]=b[j+2];

K+=3;j+=3;

}

}

If(a[i]==-1 && b[j]!=-1)

{ c[k]=b[j];c[k+1]=b[j+1];c[k+2]=b[j+2];

K=k+3; j=j+3;}

If(a[i]!=-1 && b[j]==-1)

{ c[k]=a[i];c[k+1]=a[i+1];c[k+2]=a[i+2];

K+=3;i+=3;

}

C[k]=-1;

}

C语言程序设计习题参考答案第四章(数组)

第四章数组参考答案 一、选择题:1、 B 2、C 3、D 4、C 5、C 6、B 7、D 8、B 9、B 10、A 二、填空题: 1、首地址 2、按行存放 3、一个字符 4、′\0′ 5、字符数组名或字符串 6、9 0 7、6 8、j-1 str[j-1] 9、62 10、s1[i]=s2[i]; 三、改错题 1、错误语句:int a[3][ ]={2,4,6,8,10,12,14,16,18}; 正确语句:int a[ ][3]={2,4,6,8,10,12,14,16,18}; 2、错误语句:if (str[2]>string) string=str[2]; 正确语句:if (strcmp(str[2],string)>0) strcpy(string,str[2]); 3、错误语句:char c[5]={'C','h ','i','n','a '}; 正确语句:char c[6]={'C','h ','i','n','a '};或char c[ ]={“China”}; 4、错误语句:int a[3]={3*0} ; 正确语句:int a[4]; 5、错误语句:scanf(“%d%d%d”,&a); 正确语句:for (i=0; i<3; i++) scanf(“%d”,&a[i]); 或scanf(“%d%d%d”, &a[0], &a[1], &a[2]); 四、编程题 1、用数组来处理,求解Fibonacci数列前40项:1,1,2,3,5,8,13,21…。 #include void main() { int i; int t[40]={1,1}; for(i=2;i<40;i++) t[i]=t[i-2]+t[i-1]; for(i=0;i<40;i++) { if(i%5==0) printf("\n"); printf("%15d",t[i]); } } 2、用选择法对20个整数排序(由大到小)。 #include void main() {int i,j,min,t,x[20]; for(i=0;i<20;i++) scanf("%d",&x[i]); for(i=0;i<19;i++) {min=i; for(j=i+1;j<20;j++) if(x[min]>x[j])min=j; t=x[i];

(实验四)符数组与字符串

实验四字符数组与字符串 一、实验目的 ●了解并掌握一维数组与二维数组的定义方法 ●了解并掌握一维数组与二维数组的初始化方法及元素的引用方法 ●了解并掌握字符串、字符串数组以及字符串函数的使用方法 二、实验环境 ●个人计算机一台,PIII500(或同等性能)以上CPU,128MB以上内存,500MB以 上硬盘剩余空间。 ●Windows2000、Windows XP或Win 7操作系统 ●Code::Blocks(版本12.11或近似版本,英文版) 三、实验内容 1. 冒泡排序 编写程序,实现如下功能:从键盘上输入整数n(n<=100),再输入n个整数,以冒泡排序算法将n个整数按从小到大的顺序进行排序。 /*example-14.c*/ #include "stdio.h" int main() { int num[100], n, i, j, t; /*输入整数的数量n*/ printf("Input n(<=100):"); scanf("%d", &n); /*输入n个整数*/ printf("Input %d numbers:\n", n); for(i=0; i

/*输出排序后的数据*/ printf("After sorting:\n"); for(i=0; i

第4章数组练习题

一填空题 1)数组的元素通过索引来访问,数组Array的长度为Array.length 。 2)数组复制时,"="将一个数组的引用传递给另一个数组。 3)没有显式引用变量的数组称为匿名数组。 4)JVM将数组存储在堆(堆或栈)中。 5)数组的二分查找法运用的前提条件是数组已经。 6)矩阵或表格一般用二维数组表示。 7)如果把二维数组看成一维数组,那么数组的元素是一维数组。 8)Java中数组的下标的数据类型是int 。 9)不用下标变量就可以访问数组的方法是foreach循环。 10)数组最小的下标是0 。 11)arraycopy()的最后一个参数指明长度。 12)向方法传递数组参数时,传递的是数组的引用。 13)线性查找法的平均查找长度为。 14)数组初始化包括数组的声明,创建和初始化。 15)数组下标访问超出索引范围时抛出数组索引超出绑定异常 16)浮点型数组的默认值是0.0 f 。 17)对象型数组的默认值是null 。 18)对象类型的数组虽然被默认初始化,但是并没有调用构造函数。 19)二维数组的行的长度可以不同。 20)数组创建后其大小不能改变。 二选择题 1.下面错误的初始化语句是__D_ A. char str[]="hello"; B. char str[100]="hello"; C. char str[]={'h','e','l','l','o'}; D. char str[]={'hello'}; 2.定义了一维int型数组a[10]后,下面错误的引用是_B__ A. a[0]=1; B. a[10]=2; C. a[0]=5*2; D. a[1]=a[2]*a[0]; 3.下面的二维数组初始化语句中,正确的是_B___ A. float b[2][2]={0.1,0.2,0.3,0.4}; B. int a[][]={{1,2},{3,4}}; C. int a[2][]= {{1,2},{3,4}}; D. float a[2][2]={0}; 4.引用数组元素时,数组下标可以是_D___ A. 整型常量 B. 整型变量 C. 整型表达式 D. 以上均可 5.定义了int型二维数组a[6][7]后,数组元素a[3][4]前的数组元素个数为__B__ A. 24 B. 25 C. 18 D. 17 6.下列初始化字符数组的语句中,正确的是_C___ A. char str[5]="hello"; B. char str[]={'h','e','l','l','o','\0'}; C. char str[5]={"hi"}; D. char str[100]=""; 7.数组在Java中储存在 C 中

数据机构第四章——java语言描述 第4章 串与数组 习题参考答案..

习题四参考答案 一、选择题 1.下面关于串的叙述中,哪一个是不正确的?(B ) A.串是字符的有限序列 B.空串是由空格构成的串 C.模式匹配是串的一种重要运算 D.串既可以采用顺序存储,也可以采用链式存储 2.串的长度是指( A ) A. 串中包含的字符个数 B. 串中包含的不同字符个数 C. 串中除空格以外的字符个数 D. 串中包含的不同字母个数 3.设有两个串p和q,其中q是p的子串,求q在p中首次出现的位置的算法称为( C )A.求子串B.联接C.模式匹配D.求串长 4.设主串的长度为n,模式串的长度为m,则串匹配的KMP算法时间复杂度是( C )。 A. O(m) B. O(n) C. O(n + m) D. O(n×m) 5. 串也是一种线性表,只不过( A )。 A. 数据元素均为字符 B. 数据元素是子串 C. 数据元素数据类型不受限制 D. 表长受到限制 6.设有一个10阶的对称矩阵A,采用压缩存储方式,以行序为主进行存储,a11为第一元素, 其存储地址为1,每个元素占一个地址空间,则a85的地址为( B )。 A. 13 B. 33 C. 18 D. 40 7. 有一个二维数组A[1..6, 0..7] ,每个数组元素用相邻的6个字节存储,存储器按字节编址, 那么这个数组占用的存储空间大小是(D )个字节。 A. 48 B. 96 C. 252 D. 288 8.设有数组A[1..8,1..10],数组的每个元素占3字节,数组从内存首地址BA开始以列序 为主序顺序存放,则数组元素 A[5,8]的存储首地址为( B )。 A. BA+141 B. BA+180 C. BA+222 D. BA+225 9. 稀疏矩阵的三元组存储表示方法( B ) A. 实现转置操作很简单,只需将每个三元组中行下标和列下标交换即可 B. 矩阵的非零元素个数和位置在操作过程中变化不大时较有效 C. 是一种链式存储方法 D. 比十字链表更高效 10. 用十字链表表示一个稀疏矩阵,每个非零元素一般用一个含有( A )域的结点表示。 A.5 B.4 C. 3 D. 2 二、填空题 1. 2.串长度为0 3. 4. 5. 模式串t="ababaab"的next[]nextval[]数组值为。 6. 设数组A[1..5,1..6]的基地址为1000,每个元素占5个存储单元,若以行序为主序顺序 存储,则元素A[5,5]

PTA第四章串、数组和广义表练习题

B(2.0) D(2.0) D(2.0) D(2.0) D(2.0) A(2.0) B(2.0) B(2.0) D(2.0) C(2.0) D(2.0) D(2.0) 2-1 广义表是一种(B)数据结构。(2分) 1.非递归的 2.递归的 3.树型 4.图状 作者: 严冰 单位: 浙江大学城市学院 2-2 一个广义表为( a, (b, c), d, (), ((f, g), h) ),则该广义表的长度与深度分别为(D)。(2分) 1.4和6 2.6和3 3.3和5 4.5和3 作者: 严冰 单位: 浙江大学城市学院 2-3 稀疏矩阵的快速转置算法的时间复杂度是(D)。(2分) 1.三次方时间 2.二次方时间 3.对数时间 4.线性时间 作者: 严冰

单位: 浙江大学城市学院 2-4 在定义稀疏矩阵的十字链接存储结构时,每个结点结构需包含(D)个域。(2分) 1. 4 2. 3 3. 6 4. 5 作者: 严冰 单位: 浙江大学城市学院 2-5 广义表与稀疏矩阵都是线性表的扩展,它们的共同点为(D)。(2分) 1.都可以用链接结构与顺序结构存储 2.无共同点 3.都是递归结构 4.数据元素本身是一个数据结构 作者: 严冰 单位: 浙江大学城市学院 2-6 (neuDS_C++)以下叙述中正确的是(A )。(2分) 1.串是一种特殊的线性表 2.串的长度必须大于零 3.串中元素只能是字母 4.空串就是空白串 作者: 姚志军 单位: 广东东软学院

2-7 (neuDS_C++)串是一种特殊的线性表,其特殊性体现在(B )。(2分) 1.可以顺序存储 2.数据元素是一个字符 3.可以链接存储 4.数据元素可以是多个字符 作者: 姚志军 单位: 浙江大学 2-8 (neuDS_C++)设有两个串p和q,求q在p中首次出现的位置的运算称作( B)。(2分) 1.连接 2.模式匹配 3.求子串 4.求串长 作者: 姚志军 单位: 广东东软学院 2-9 (neuDS_C++)设串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 )。(2分) 1.BCDEF 2.BCDEFG 3.BCPQRST 4.BCDEFEF

第四章串和数组习题

第四章串和数组 一.选择题 1.串是一种特殊的线性表,其特殊性体现在() A.可以顺序存储B.数据元素是一个字符 C.可以链式存储D.数据元素可以是多个字符 2.串的长度是() A.串中不同字母的个数B.串中不同字符的个数 C.串中所含字符的个数,且大于0 D.串中所含字符个数 3.若串S=”software”,其子串数目是() A.8 B.37 C.36 D.9 4.数组A[0..5,0..6]的每个元素占5个单元,将其按列优先次序存储在起始地址为1000的连续内存单元中,则元素A[5][5]的地址为() A.1175 B.1180 C.1205 D.1210 5.对矩阵压缩存储是为了() A.方便运算B.节省存储空间C.方便存储D.提高运算速度 6.一个n 阶对称矩阵,如果采用压缩存储方式,则容量为() A.n2B.n2/2 C.n(n+1)/2 D.(n+1)2/2 7.对稀疏矩阵采用压缩存储,其缺点之一是() 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中每一个字符出现的次数。 3.采用顺序结构存储串,编写一个算法计算制定子串在一个字符串中出现的次数,如果该子串不出现则为0。 4.如果矩阵A中存在这样一个元素A[i][j]满足条件:A[i][j]是第i行中值最小的元素,且又是第j 列中值最大的元素,则称为该矩阵的一个马鞍点。编写一个算法计算出m×n的矩阵A的所有马鞍点。 5.编写一个算法,计算一个三元组表表示的稀疏矩阵的对角线元素之和。 6.系数矩阵只存放其非零元素的行号、列号和数值,用一维数组顺序存放之,行号-1作为

第四章 数组习题集答案

第四章数组习题 一、选择题 1. 如果char型变量占两个字节的存储单元,则按照如下方式定义的数组x占用的字节数 是【】。 char x[50]={2,4,6,8,10}; A)50 B)100 C)10 D) 5 2. 下面关于数组的定义正确的是【】。 A) int n=10; float a[n]={1.0,2.1,3.2}; B) #define N 10 int a[N]={1,2,3}; C) int n; scanf("%d", &n); int a[n]; D) #define N 10; int a[N]={1,2,3}; 3. 若有说明int a[5][4]; 则对其数组元素的正确引用是【】。 A)a[3+1][2] B)a(2)(3) C)a[0,2]D)a[3][5] 4. 若定义了数组int k[][4]={{1},{1,2,3},{5,6}};则数组共有【】元素。 A)6 B)9 C)10 D)12 5. 要将20,30,40,50 存入数组b中, 下列正确的程序段是【】。 A) int i,b[4]; for(i=0; i<4; i++) b[i]=(i+2)*10; B) int b[4]; b={20,30,40,50}; C) int b[4]; b[1]=20,b[2]=30,b[3]=40,b[4]=50; D) int b[4]; b[4]={20,30,40,50}; 6. 下列二维数组初始化语句中正确且与语句float a[]={0,1,2,0,4,0}等价的是【】。 A)float a[6]={0,1,2,0,4}; B)float a[]={0,1,2,0,4}; C)float a[7]={0,1,2,0,4,0}; D)float a[5]={0,1,2,0,4}; 7. printf("%d \n ", strlen ("ATS\n012\1\\" )) ; 程序段的输出结果是【】。

《数据结构》第四章 串 习题

《数据结构》第四章串习题 基本概念题: 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)。要求比较结果有大于、等于和小于三种情况。对比本题和习题4-13的算法,说明串的静态数组存储结构和串的动态数组存储结构是否对编写串的比较算法有影响。 4-15 设串采用静态数组存储结构,编写函数实现串的替换Replace(S, start, T, V),即要求在主串S中,从位置start开始查找是否存在子串T,若主串S中存在子串T,则用子串V 替换子串T,且函数返回1;若主串S中不存在子串T,则函数返回0。 4-16 设字符串采用静态数组的顺序存储结构, (1)编写算法删除字符串s中值等于ch的一个字符,并分析该算法的时间复杂度; (2)编写算法删除字符串s中值等于ch的所有字符。 4-17 设字符串采用单字符的链式存储结构,编写删除串s从位置i开始长度为k的子串的算法。 *4-18 设字符串采用块链存储结构,编写删除串s从位置i开始长度为k的子串的算法。 上机实习题: 4-19 在4.4.3节例4-6的基础上,编写比较 Brute-Force算法和KMP算法比较次数的程序。 4-20 设串采用静态数组存储结构,编写函数实现串的替换Replace(S, start, T, V),

相关文档
相关文档 最新文档