数据结构之串(上)——串的基本概念与存储结构
数据结构之串上——串的基本概念与存储结构1.什么是串1我们先来看一下基本的关系数据结构是指两个集合a.有特定关系的元素的集合元素集b.这些元素之间的关系的集合关系集元素之间的关系有a.线性关系b.非线性关系在各种各样的数据结构中如果其中的元素是线性关系我们就称呼这个数据结构为线性表如果线性表中的元素集是字符集即元素类型均为字符型我们就称这种线性表为串。2必须知道的关于串的基本概念串的长度串中所包含的字符个数称为该串的长度。空串长度为零即不包含任何字符子串串中任意个连续字符组成的子序列称为该串的子串嘿嘿主串是什么就不用我解释了吧空格串空白串顾名思义所有字符都是空格2.串的存储方式1字符数组法顺序存储结构a.将串定义为字符数组利用串名可以直接访问串值b.呜呜呜数组要先分配好存储空间啊存储空间就固定了啊c.代码#define m100 //用户能在100以内定义最大串长 typedef char Sstring[m1];//0号单元存放串的长度字符从1号单元存放 Sstring S; //S的类型为Sstring2字符序列法堆分配存储结构a.用一组地址连续的存储单元依次存储串中的序列b.程序运行时根据串的实际长度动态分配存储空间c.代码typedef struct { char *ch; //ch是地址ch[i]或*ch是元素我们可以用s.ch[i]来访问字符串s中第i个元素 int length; //s的长度L等于s.length } Hstring;3链式存储代码#define m10//一个地址可存10个字符 typedef struct snode{ char ch[m]; struct node*next;//地址 } snode;