字符串(String)
字符串是一种特殊的线性表,其基本组成单位是单个字符;所以字符串是由0个到多个字符顺序排列所组成的线性表。
字符串(String)//字符数目n称为串的长度//空串就是0个字符//判断两个串是否相等,就看串长度是否相等且每个字符的位置是否都相等//串中任意个数的连续字符组成的子序列称为子串//
一般的操作集:String StrAssign(char c[])//根据c[]生成字符串
String StrCopy(String S)//复制字符串S
int StringCompare(String S1,String S2)//若S1=S2,返回0;若S1<S2,返回-1;否则返回1;
String Concat(String S1,String S2)//连接字符串
Index 查找位置返回//
…
字符串的表示——定长顺序存储
#define MAXSTRLEN 255//给定一个容量,一个字长255//
typedef unsigned char SString [MAXSTRLEN+1]//0号单元存放串的长度//
字符串的存储空间是固定长度的,实际长度存放于0号单元
//字符串的堆分配存储//
struct HString{
char*Ch;//这里必须define申明分配长度,否则此处的Ch为NULL//
int Length;//串的长度//
字符串的模式匹配算法
这里我们主要讲一下KMP算法//
这张动图能很好的解释KMP算法怎样去进行匹配的。
矩阵压缩存储
这里我只讲述“三角矩阵”
三角矩阵分为上三角与下三角矩阵。
压缩存储中有分为行压缩存储与列压缩存储。
行压缩存储(下三角)
a00 a01…
a00
a01 a02
a03 a04 a05
同理:列就是列排。