串(字符串)---特殊的线性表

串(字符串)

串是一种特殊的线性表,其数据元素仅仅由一个字符组成,
计算机非数值时处理的对象经常是字符串数据
1.串的概念

串是由零个或多个任意字符组成的字符序列

2.串的术语
  • 一个串的任意个连续的字符组成的子序列称为该串的子串,包含该子串的串称为主串
  • 串相等: 两个串的长度相等且对应的字符都相等
3.串的存储方式
对串的存储方式取决于我们对串的运算。如果只是输入或输出常量出现,
则需要存储该串的字符序列
3.1串的顺序存储

这种存储方法可以直接得到串的长度,即s.last+1

#define MAXSIZE
typedef struct{
	char ch[MAXSIZE];
	int last;//指向最后一个字符的位置
}SqString;
SqString s;

在这里插入图片描述

3.2串的堆存储
串值的存储空间可在程序执行过程中动态分配可得,计算机存在这样的一个自由存储区,
叫做堆,用的时候可以申请空间,不用的时候在释放回去

堆存储的基本思想:根据串的长度,动态地为每个串在堆空间store申请对应大小的存储区域,当原空间不够时,可以继续申请
在这里插入图片描述

  • 串名的存储映像
    它是串名——串值内存分配的对照表,也称为索引表
typedef struct{
	int length;
	int str;//起始地址
}Hstring;
发布了50 篇原创文章 · 获赞 19 · 访问量 4726

猜你喜欢

转载自blog.csdn.net/qq_44723296/article/details/102578636