数据结构题集-第四章-串-采用特定数据类型对串求逆
第四章算法设计题
- 准备工作
- 4.10 采用StringType对串求逆
准备工作
在编写4.10至4.14题的算法时,请采用StringType数据类型:
StringType是串的一个抽象数据类型,它包含以下五种基本操作:
void StrAssign(StringType *pt,StringType s)//将s的值赋给*pt,s的实际参数可以是串变量或者串常量(如:'abcd')
int StrCompare(StringType s,StringType t)//比较s和t。若s>t,返回值>0;若s==t,返回值==0;若s<t,返回值<0。
int StrLength(StringType s)//返回s中的元素个数,即该串的长度。
void Concat(StringType *pst,StringType s,StringType t)//用(*pst)返回由s和t联接而成的新串
void SubString(StringType *psub,StringType s,int start,int len)//当1<=start<=StrLength(s)且0<=len<=Strlength(s)-start+1时,//返回s中第start字符起长度为len的子串,否则返回空串
4.10 采用StringType对串求逆
编写对串求逆的递推算法。
解:
void String_Reverse(Stringtype s,Stringtype &r)//求s的逆串r
{StrAssign(r,''); //初始化r为空串for(i=Strlen(s);i;i--){StrAssign(c,SubString(s,i,1));StrAssign(r,Concat(r,c)); //把s的字符从后往前添加到r中}
}//String_Reverse
下一题会给出可运行的版本。