算法入门之串的顺序存储表示

        串,即字符串。计算机上的非数值处理的对象基本上是字符串数据。但是,由于现在我们使用的计算机硬件结构主要是反映数值计算的需要的,在处理字符串数据时比处理整数和浮点数要复杂的多。而且,对于不同类型程序,所处理的字符串具有不同的特点,要有效地实现字符串的处理,就必须根据具体情况使用合适的存储结构。串的存储表示主要有:1.定长顺序存储表示; 2. 堆分配存储表示; 3.块链存储表示。

        以下介绍比较简单的定长顺序存储表示。

        串定长顺序存储表示,说白了,就是用以个固定长度字符数组来存放。

1.定义“头部”

 2.初始化

3.把一个字符数组赋给SString。。

也许看到在这,你会问,SString本身是一个字符数组,为什么又要用一个字符数组去赋给SString?

其实不然,SString相对与字符数组,已经有所不同了,它以数组中下标0的位置存放串当前的实际长度。PASCAL语言中就是使用这个串类型的表示方法。

而对于char *chars = "12345",要像把它赋给另一个字符数组如char chars1[n],那么这里的n值必须大于等于6。因为C语言在字符串末位加了'\0'作为结束标志符。但是有的编译器如gcc不检测这错误。

4.串的比较

5.从S下标为pos开始,取长度len的子串Sub。

6.串的合并:S1,S2合并为S

7.模式匹配的一种改进算法:KMP算法



posted @ 2011-11-10 16:52  我的IT技术  阅读(318)  评论(0编辑  收藏  举报