串其实解释我们平常用的string字符串,它也是一种线性表结构,不同的是,普通的线性表一般都是针对单个元素的,而串一般针对的是多个元素的操作。
//串的顺序存储结构
class StringList
{
private char[] _data;
public StringList(char[] chars) {
this.ValueTo(chars);
}
//创建空串
public StringList() {
this._data = null;
}
//串赋值为字符数组
public void ValueTo(char[] chars) {
if (chars == null) {
this._data = null;
return;
}
this._data = new char[chars.Length];
for (int i = 0; i < chars.Length; i++)
{
_data[i] = chars[i];
}
}
}可以看出,这里的串的数据域就是一个字符数组,数组的长度就是串的长度,因为c#的数组是可以重新定义大小的,所以分配到刚好的大小就好,也不用使用特殊符号来判定串的结束
有些语言的数组是不能重新定义大小的,所以扩大时会创建新的string(新的大小),缩小时以'\0'作为字符串的结束标志。