4.2.1串的顺序存储结构-顺序串和顺序表一样,用一个data数组和一个整型变量size来表示一个顺序串,size表示data数组中实际字符的个数。为了简单,data数组采用固定容量为MaxSize(可以模仿顺序表改为动态容量方式)。6/62
和顺序表一样,用一个data数组和一个整型变量size来表示一个顺 序串,size表示data数组中实际字符的个数。 为了简单,data数组采用固定容量为MaxSize(可以模仿顺序表改 为动态容量方式)。 6/62
顺序串类Sgstringclass//顺序串类publicclass Sqstringclassfinal int Maxsize=100;//存放串中字符char [] data;int size;//串中字符个数//构造方法public Sqstringclass()data=new char[Maxsize];size=o;/串的基本运算算法7/62
顺序串类SqStringClass public class SqStringClass //顺序串类 { final int MaxSize=100; char [] data; //存放串中字符 int size; //串中字符个数 public SqStringClass() //构造方法 { data=new char[MaxSize]; size=0; } //串的基本运算算法 } 7/62
顺序串上的基本运算算法设计与顺序表类似,仅以求子串为例说明8/62
顺序串上的基本运算算法设计与顺序表类似,仅以求子串为例说明。 8/62
求子串:对于一个顺序串求序号开始长度为的子串。sizedata串对象5:t=s.Substr(2,4)串对象t:datasize9/62
串对象t: 串对象s: data a b c d 1 2 . 7 t=s.SubStr(2,4) data size d 1 2 . 4 size 3 c 求子串:对于一个顺序串求序号i开始长度为j的子串。 9/62
实现:先创建一个空串s,当参数正确时,s子串的字符序列为data[i..i+j-1],共个字符,当i和i+j-1不在有效序序号0~size-1范围内时,则参数错误,此时返回空串。1/求子串publicSqstringclassSubstr(inti,int j)1/新建一个空串Sqstringclass s=new Sqstringclass();if (i<o Il i>=size Il j<o Il i+j>size)//参数不正确时返回空串return s;//将data[i..i+j-1]-sfor(int k=i;k<=i+j;k++)s.data[k-i]=data[k];s.size=j;//返回新建的顺序串return s;大10/62
public SqStringClass SubStr(int i,int j) //求子串 { SqStringClass s=new SqStringClass(); //新建一个空串 if (i<0 || i>=size || j<0 || i+j>size) return s; //参数不正确时返回空串 for (int k=i;k<=i+j;k++) //将data[i.i+j-1]→s s.data[k-i]=data[k]; s.size=j; return s; //返回新建的顺序串 } 实现:先创建一个空串s,当参数正确时,s子串的字符序列为data[i.i+j-1], 共j个字符,当i和i+j-1不在有效序序号0~size-1范围内时,则参数错误,此 时返回空串。 10/62