串求逆的递推算法
StringType是串的一个抽象数据类型,它包含以下6种基本操作:
void InitStr(StringType &s);
// 初始化s为空串。
void StrAssign(StringType &t, StringType s);
// 将s的值赋给t。s的实际参数是串变量。
int StrCompare(StringType s, StringType t);
// 比较s和t。若s>t,返回值>0;若s=t,返回值=0;若s<t,返回值<0。
int StrLength(StringType s);
// 返回s中的元素个数,即该串的长度。
StringType Concat(StringType &s, StringType t);
// 返回由s和t联接而成的新串。
StringType SubString(StringType s, int start, int len);
// 当1<=start<=StrLength(s)且0<=len<=StrLength(s)- start+1时,
// 返回s中第start个字符起长度为len的子串,否则返回空串。
实现函数如下:
void Reverse(StringType &s)
/* Reverse s by iteration. */
{
StringType temp;
int i;
InitStr(temp);
i = StrLength(s);
while(i){//将s串中从末尾开始的每个元素一个一个地复制到串temp中
Concat(temp,SubString(s,i,1));
i--;
}
StrAssign(s,temp);//用串temp将串s覆盖
}