串其实解释我们平常用的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'作为字符串的结束标志。